Android 11 中的“Targeting R+”错误:如何快速解决?
2024-03-19 21:56:39
# Android 11 中的 “Targeting R+” 错误:如何解决
## 问题概述
更新到 Android 11(API 30)后,在尝试安装应用时,你可能会遇到一个令人困惑的错误:“Targeting R+ requires resources.arsc to be uncompressed and aligned on a 4-byte boundary”。这是一个由于 Android 11 的一个变化而引起的常见问题。
## 根本原因
从 Android 11 开始,resources.arsc
文件(包含应用的资源信息)必须存储为未压缩格式并对齐到 4 字节边界。如果没有满足这些要求,安装过程将失败,并显示上述错误。
## 解决步骤
要解决此问题,你可以采取以下步骤:
### 使用 Android Studio 资源优化器
- 在 Android Studio 中打开你的项目。
- 转到 Build > Analyze APK 。
- 选择你的构建变体并单击 Analyze 。
- 优化工具将自动优化你的应用资源,包括
resources.arsc
文件。
### 手动对齐 APK
- 打开命令行窗口。
- 导航到你的 APK 文件所在目录。
- 使用以下命令对 APK 进行对齐:
zipalign -p -f -v 4 aligned.apk input.apk
- 将
aligned.apk
替换为对齐后 APK 的所需名称。 - 将
input.apk
替换为未对齐 APK 的路径。
### 重新安装
使用对齐后的 APK 重新安装你的应用:
adb install aligned.apk
## 额外提示
- 如果使用 ProGuard,请确保已在
proguard-rules.pro
文件中包含以下行:
-keep class android.util.TypedValue { <init>(...); }
- 确保已更新到最新版本的 Gradle 和 Android SDK 工具。
## 结论
遵循这些步骤应该可以解决你遇到的 “Targeting R+” 错误。此错误是 Android 11 中资源处理方式变化的结果。通过采取必要的措施,你可以确保你的应用与最新的 Android 版本兼容。
## 常见问题解答
1. 为什么会出现 “Targeting R+” 错误?
答:此错误是由于 Android 11 要求 resources.arsc
文件存储为未压缩格式并对齐到 4 字节边界所致。
2. 如何使用 Android Studio 资源优化器?
答:请参阅上面列出的步骤,在 Android Studio 中打开你的项目,导航到 Build > Analyze APK 菜单并选择你的构建变体。优化器将自动优化你的应用资源。
3. 如何手动对齐 APK?
答:请参阅上面列出的步骤,使用 zipalign 工具,该工具可以对齐你的 APK。确保指定对齐后 APK 的名称和未对齐 APK 的路径。
4. 如何知道我的 APK 是否已对齐?
答:你可以使用以下命令检查 APK 的对齐情况:
zipalign -v -i input.apk
- 将
input.apk
替换为你的 APK 路径。如果 APK 已对齐,它将显示Verification OK
消息。
5. 如何防止将来出现此错误?
答:确保你的 Gradle 和 Android SDK 工具是最新的,并在 build.gradle
文件中将 targetSdkVersion
设置为 30 或更高。此外,请使用 Android Studio 资源优化器或 zipalign 工具对齐你的 APK。