【问题标题】:Android App Not Installed未安装安卓应用
【发布时间】:2015-08-09 16:36:13
【问题描述】:

我有一个包含一些 JNI 库的项目,该应用可以正常使用未签名的 APK,但是当我使用向导生成已签名的 APK 时,该应用无法安装并出现“未安装应用”错误。

需要明确的是,这不是典型的“卸载带有调试签名的旧 APK”案例,我已经这样做了。会不会是eclipse的导出向导出错了?

我正在使用 Eclipse,就像我说的那样,我在其中有一些 JNI 库,除此之外,没有什么不寻常的,只是一些库项目。

【问题讨论】:

标签: java android eclipse


【解决方案1】:

手动签署您的应用程序 您不需要 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 量。

【讨论】:

    猜你喜欢
    • 2014-08-15
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    相关资源
    最近更新 更多