返回

Android 11 中的“Targeting R+”错误:如何快速解决?

Android

# 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 资源优化器

  1. 在 Android Studio 中打开你的项目。
  2. 转到 Build > Analyze APK
  3. 选择你的构建变体并单击 Analyze
  4. 优化工具将自动优化你的应用资源,包括 resources.arsc 文件。

### 手动对齐 APK

  1. 打开命令行窗口。
  2. 导航到你的 APK 文件所在目录。
  3. 使用以下命令对 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。