Android 解决 Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]

背景

Android Studio版本


Android 解决 Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]_第1张图片
androidstudio

debug版本可以安装运行正常,release版本安装不上,使用adb指令报错:

Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]

网上搜到的结果

  1. 没有使用正确的签名姿势 reference

    android 2.3 之前使用v1签名,对应android7 之前。所以如果在较旧的设备上安装release版本需要使用v1版签名,至少签名时候需要勾选v1,v2也可以一起勾选上

  2. 未能完全卸载debug版本

  3. 在签名配置中添加 zipAlignEnabled false 关闭zip压缩优化 reference

但是,这些都不解决我的问题

重点来了

使用原生Google系统, adb install xxx.apk 之后发现更多可用的debug信息

Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed reading res/raw/xxx.xxx in android.util.jar.StrictJarFile@5fdc588: META-INF/MANIFEST.MF has invalid digest for res/raw/xxx.xxx in res/raw/xxx.xxx]

原因:打包中的文件的安全验证与META-INF/MANIFEST.MF 中的不符

产生原因:

发现相关的文件是在module library中的 res/asset,打包过程由于android studio的原因,未能把module library 模块库按照release进行打包融合到release版本的apk中

解决办法

现将module library使用 assembleRelease 打包成 xxx-release.aar 包,然后使用放入到app的libs路径下,重新添加依赖。

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation fileTree(dir: 'libs', include: ['*.aar'])
    ...
}

特此记录防止以后踩坑

你可能感兴趣的:(Android 解决 Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION])