adb - [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]

10

当我在提取的APK文件中更改文件时,我会重新压缩它,将扩展名更改为.apk,并像这样进行安装:

$ adb install CustomAPK.apk 
2831 KB/s (41896599 bytes in 14.450s)
    pkg: /data/local/tmp/CustomAPK.apk
Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]

这是从哪里来的?


3个回答

5

生成密钥并签署APK:Android开发者网站

手动签署应用程序

您无需使用Android Studio即可签署应用程序。 您可以使用Android SDK和JDK中的标准工具从命令行签署应用程序。 要从命令行以发布模式签署应用程序:

使用keytool生成私钥。 例如:

$ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

此示例会提示您输入密钥库和密钥的密码,并提供密钥的专有名称字段。 然后,它将生成名为my-release-key.keystore的密钥库文件。 密钥库包含一个有效期为10000天的单个密钥。 别名是您稍后在签署应用程序时要使用的名称。

以发布模式编译您的应用程序以获得未签名的APK。 使用jarsigner使用您的私钥对应用程序进行签名:

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name

此示例会提示您输入密钥库和密钥的密码。 然后,它将原地修改APK以进行签名。 请注意,您可以使用不同的密钥多次签署APK。

验证已签署APK。 例如:

$ jarsigner -verify -verbose -certs my_application.apk

使用zipalign对最终APK包进行对齐处理。

$ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk

zipalign 确保所有未压缩的数据都与文件开头有特定的字节对齐,这减少了应用程序消耗的RAM量。


4

安装失败,原因是出现了意外异常(INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION)

卸载应用并点击运行按钮来解决这个问题。


这个答案是关于Android Studio还是手动ADB安装的,就像原始问题一样? - Aly
Android Studio 出现 INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION 错误。 - Panneerchelvam Piratheepan
简单而有效的解决方案。谢谢! - Romário

1

构建应用程序,然后运行

解决我的问题


不相关,因为问题涉及修改生成的APK以重新构建它。 - htafoya
1
无法相信这个起作用了。@ht - Samuel Aiala Ferreira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接