【问题标题】:PackageParserException: Package ...base.apk has no certificates at entry AndroidManifest.xmlPackageParserException:包 ...base.apk 在 AndroidManifest.xml 入口处没有证书
【发布时间】:2019-01-17 14:31:08
【问题描述】:

我正在调试模式下运行我的应用程序,一切正常。但是当我签名并尝试安装apk时,Logcat出现这个错误,手机显示“App is not installed”。

这在每部带有 V1、V2、只有 V1 - 似乎 android studio 没有甚至没有意识到我改变了什么。

试图用这个完全禁用 V2,但没有运气。

signingConfigs{
    release {
        storeFile file("keystore.jks")
        storePassword 'password'
        keyAlias 'alias'
        keyPassword 'password'
        v2SigningEnabled false
    }
}

我还能做什么?

C:\Program Files\Android\Android Studio\jre\jre\bin>java -version
openjdk version "1.8.0_152-release"
OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
OpenJDK 64-Bit Server VM (build 25.152-b01, mixed mode)    

【问题讨论】:

    标签: android exception gradle android-gradle-plugin signing


    【解决方案1】:

    今天我将 Android Studio 更新到 3.3 并遇到了同样的问题。

    我在删除 Build 文件夹、Clean ProjectInvalidate Caches/Restart 后修复了它。 之后,我可以通过 Build -> Generate Signed Bundle/APK 生成签名应用程序,只有 V1 签名。

    使用 signingConfigs 版本构建签名的应用程序 仍然不起作用。

    你可以试试我的解决方案。

    【讨论】:

    • 具有讽刺意味的是,我只是为此写了自己的答案,但感谢您帮助我。我也认为最新的更新打破了一些东西。
    【解决方案2】:

    好的,我通过执行这些操作解决了它,但我不确定实际上是什么解决了它。无论如何:

    1. 将所有代码复制到另一个项目中(奇怪?)

    2. 创建另一个密钥库

    3. 删除所有需要newest java features 的函数,因此需要最新的Android

    4. 之后,只选择v1 jar签名

    【讨论】:

    • 需要哪些 Java 功能?
    【解决方案3】:

    生成签名apk的步骤:

    1. 构建版本未签名的 apk。
    2. 使用命令提示符压缩未签名的 APK。

      zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
      
    3. 使用应用签名者通过命令提示符使用 Sonim 私钥对 APK 进行签名。

      apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
      
    4. 在设备中安装apk。

    【讨论】:

      猜你喜欢
      • 2017-11-07
      • 2020-01-24
      • 1970-01-01
      • 2013-06-29
      • 2020-09-28
      • 2019-12-06
      • 2021-01-26
      • 2010-11-04
      • 1970-01-01
      相关资源
      最近更新 更多