android - 应用程序未安装在 Android 11 中,但适用于以前的版本

标签 android build build.gradle apk

我有一个包含两个包的应用程序 com.example.packagecom.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]
因此,我尝试使用 zip 对齐 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

关于android - 应用程序未安装在 Android 11 中,但适用于以前的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64364407/

相关文章:

android - Gradle Terminal 未在 Android Studio 中显示

java - 如何实现没有标签的自定义菜单?

java - 确保测试 jar 的命名正确

c++ - 无法在 qtcreator 中编译 Qt 项目

android - React-Native : react-native-fast-image not working properly with react-native, 它给出错误

android - 错误 build.gradle 与 com.google.android.gms :play-services-maps:9. 4.0

android - 我怎样才能使 Android 传感器效果像这样..?

java - RxJava2 从监听器创建 Flowable 并在最后删除监听器

haskell - 通过 CI 为 Linux 和 Mac 构建二进制文件

android - flavor 和仪器测试 - gradle 配置