Android 问题故障排除
打造一个 100% 完美的原生管理工具几乎是不可能的,你迟早会在 Android 工作流的某些环节遇到各种问题。
本指南旨在记录常见的 Android 问题及其可能的解决方案。
Android 工具箱
每位 Android 开发者都会学习一些调试 Android 问题的常用技巧,你应该将这些方法融入自己的工作流中:
善用搜索引擎
每当遇到 Android、Gradle 或模拟器相关的问题时,你的第一步应该是将错误信息复制并粘贴到搜索引擎中进行搜索。
Capacitor 使用标准的 Android 工具包,因此如果 你遇到了某个问题,很可能其他 Android 开发者也曾遇到过,并且网络上已经存在解决方案。
解决方案可能很简单,比如更新依赖、运行 Gradle 同步或清理缓存。
Gradle 同步
如果你从 npm 安装了一个新插件,但在 Android 构建中无法使用或看到该插件,可以尝试点击 Android Studio 右上角的 "Sync Project with Gradle Files" 按钮(图标看起来像一头大象)。这将重新同步你的原生 Android 代码以包含新的插件代码,应该能够让你使用新插件。更多信息,请参阅 GitHub 上的这个 issue。
这个方法也能帮助解决许多其他看似随机的问题,因此在遇到大多数 Android 构建问题时,"Sync Project with Gradle Files" 总是一个很好的第一步。
清理/重新构建
清理和重新构建可以解决许多构建问题:

清理缓存/重启
如果你确信已经修复了某个问题,但 Android Studio 或 Gradle 仍然报错,通常的解决方案是让 Android Studio 清 理其缓存并重启程序。
这可以通过文件菜单轻松完成:

错误:"package android.support.* does not exist"
这个错误发生在某些 Cordova 或 Capacitor 插件使用了旧的 Android 支持库依赖,而没有使用新的 AndroidX 等效库时。 你应该在插件仓库中报告这个问题,以便维护者可以更新插件以使用 AndroidX 依赖。
作为临时解决方案,你也可以使用 jetifier 来修补插件:
npm install jetifier
npx jetify
npx cap sync android
错误:"Please select Android SDK"
这个错误通常是由于需要同步 Gradle 引起的,在更新依赖和更改项目设置后,你需要定期执行此操作。
要手动同步 Gradle,请从主菜单栏打开 File -> Sync Project with Gradle Files:

错误:"APK 无法安装"
APK 无法安装到模拟器或设备上,通常是由于存在具有相同包名的现有应用。尝试运行应用时,你可能会看到如下错误:

解决方案是移除任何旧的应用,并确保你的包名在 AndroidManifest.xml 中是最 新的,且不与你正在开发的其他应用冲突。
最后,以防万一,执行一次清理和重新构建操作。
错误:"Unable to locate a Java Runtime"
在使用 run 命令时,如果 JAVA_HOME 环境变量未设置,可能会出现此错误。
要解决此问题,请使用在 Android Studio 中 Preferences > Build, Execution, Deployment, Build Tools > Gradle > Gradle JDK 下找到的路径,将 JAVA_HOME 设置为环境变量或系统变量。

在 Mac 上,可以在 .zshrc 或 .bashrc 文件中更新,或在环境中导出:
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"