应用程序未安装在 Android 11 中,但可以在以前的版本上运行

2024-04-10

我有一个包含两个包的应用程序com.example.package and com.other.package。我在build.gradle中的配置如下:

android {
    compileSdkVersion 30
    defaultConfig {
        applicationId "com.example.package"
        minSdkVersion 18
        targetSdkVersion 30

我构建了一个未签名的发布版本。然后我用它签名

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <keystore> <OUTPUT> <ALIAS>

我从中获得的构建在除 Android 11 之外的所有版本上都运行良好。 在 android 11 上,当我安装应用程序时,出现以下错误:

adb: failed to install ginger-uk.apk: Failure [-124: Failed parse during installPackageLI: Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte boundary]

因此,我尝试压缩对齐 APK 并安装,但随后在 Android 11 上出现以下错误:

App not installed error

然后,我在基于某些 stackoverflow 解决方案进行签名之前尝试先进行 zipalign,但在 Android 11 上出现以下错误:

adb: failed to install ginger-uk.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Scanning Failed.: No signature found in package of version 2 or newer for package com.other.package]

我的问题是有人成功签署了 Android 11 及以下版本的 APK 吗?你如何做到这一点?


这可能与:Android 11 不再支持 APK 签名方案 v1。现在必须使用 APK 签名方案 v2 或更高版本对 apk 进行签名。 请参阅此链接了解更多信息:https://developer.android.com/about/versions/11/behavior-changes-11#minimum-signature-scheme https://developer.android.com/about/versions/11/behavior-changes-11#minimum-signature-scheme

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序未安装在 Android 11 中,但可以在以前的版本上运行 的相关文章

随机推荐