当我在提取的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]
这是从哪里来的?
当我在提取的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]
这是从哪里来的?
生成密钥并签署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量。
安装失败,原因是出现了意外异常(INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION)
卸载应用并点击运行按钮来解决这个问题。
构建应用程序,然后运行
解决我的问题