Pro*_*mer 9 android build apk build.gradle
我有一个包含两个包com.example.package和com.other.package. 我在build.gradle中的配置如下:
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.example.package"
minSdkVersion 18
targetSdkVersion 30
Run Code Online (Sandbox Code Playgroud)
我构建了一个未签名的发布版本。然后我用它签名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <keystore> <OUTPUT> <ALIAS>
Run Code Online (Sandbox Code Playgroud)
我从中获得的构建适用于除 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]
Run Code Online (Sandbox Code Playgroud)
因此,我尝试使用 zip 对齐 APK 并进行安装,但随后在 Android 11 上出现以下错误:
App not installed error
Run Code Online (Sandbox Code Playgroud)
然后我尝试在基于某些 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]
Run Code Online (Sandbox Code Playgroud)
我的问题是有人成功签署了适用于 android 11 及以下版本的 APK?你是怎么做到的?
小智 16
这可能是相关的:Android 11 不再支持 APK 签名方案 v1。现在必须使用 APK Signature Scheme v2 或更高版本对 apk 进行签名。有关更多信息,请参阅此链接:https : //developer.android.com/about/versions/11/behavior-changes-11#minimum-signature-scheme
我解决了这个问题,问题是resources.arsc在BAD使用之后jarsigner,所以我压缩对齐,然后用来apksigner签名。这解决了这个问题(至少对我来说)。
| 归档时间: |
|
| 查看次数: |
9689 次 |
| 最近记录: |