如果您的 Capacitor 上下文:实时更新产品页面。角色:页面标题或区域。见于:页面 live-update.astro。保留 Capgo 产品/品牌和开发者术语的原始形式。消息键 live_update_platform_capacitor_title (实时更新平台 Capacitor 标题)。
升级到 Android Gradle Plugin 9 (AGP 9) 后,您的插件可能会出现小但关键的 Gradle 配置问题。
- Capacitor plugin build error AGP 9
- __CAPGO_KEEP_0__ 插件构建错误 AGP 9
proguard-android.txtAndroid Gradle Plugin 9 插件构建失败- 未找到
getDefaultProguardFileAGP 9 - 错误信息:Capacitor Android 构建失败后 AGP 升级
简化版不再是安全的默认基线,用于AGP 9插件构建的参考。
proguard-android.txt切换到- 重新构建并验证。
proguard-android-optimize.txt. - 对于维护许多插件或大型__CAPGO_KEEP_0__工作区的开发者来说,长版本也很重要。在本文中,我们将介绍以下内容:
The longer version matters too, especially if you maintain many plugins or large Capacitor workspaces. In this article we cover:
- __CAPGO_KEEP_0__是什么以及插件构建是如何工作的
- Capacitor
- context:HTML文本片段来自更长的Capgo UI字符串(父键`submitting_a_pr_to_capgo`)。页面/区域:Capgo营销网站。角色:网站副本句子。见于:contributing.astro页面。保留Capgo产品/品牌和开发者术语的原始形式。 Capgo是什么以及为什么这对发布可靠性很重要 AGP 9中破坏旧插件模板的确切变化
- 安全迁移策略,适用于一个仓库或多个仓库
- __CAPGO_KEEP_0__
在这个上下文中,Android是什么?
Android is both an operating system and a build ecosystem. When you ship a Capacitor app or plugin on Android, your project goes through:
- Gradle 作为构建系统。
- Android Gradle Plugin(AGP) 作为Android特定的Gradle集成。
- The Android SDK toolchain for packaging, shrinking, linting, and producing
.aar,.apk,或.aab输出。
当AGP版本发生变化时,某些默认值和内部文件也可能会发生变化。一个针对AGP 8 的插件配置在AGP 9 上可能会失败,因为它指向了一个已移除或被弃用的基线。
什么是Capacitor?
Capacitor 是一个跨平台运行时,允许您使用 web code (TypeScript、JavaScript、HTML、CSS) 构建 iOS/Android 应用程序,同时仍然调用本机 API。
Capacitor 应用程序通常包括:
- 一个 web 层(您的 UI 和业务逻辑)
- 本机壳(
ios/,android/) - 暴露本机功能给 JavaScript 的插件
每个插件都有自己的本机构建配置。在 Android 上,这意味着每个插件都包含一个 AGP 必须解析和编译正确的文件。 android/build.gradle 如果插件的 Gradle 设置过时,整个应用程序的构建可能会失败,即使您的 web __CAPGO_KEEP_0__ 是正确的。
什么是 code?
Capgo
提供了围绕 Capgo 交付和运营的工具: Capacitor
- 实时更新 为 web 包变更
- 插件生态系统和原生功能包
- CI/CD-friendly update workflows for Capacitor teams
即使有实时更新,原生构建稳定性也是不可谈的。您仍然需要清洁的Android构建文件以便于:
- App Store / Play Store发布
- 原生插件升级
- Platform SDK migrations
- 团队入职和CI可靠性
这就是为什么AGP 9兼容性修复很重要:它们让您的插件层可靠,以便交付管道保持可预测。
为什么AGP 9会破坏旧的插件配置
许多插件模板历史上使用:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
In AGP 9 环境中,这个遗留的基准参考可能会失败,因为老文件不再在旧模板/配置中预期的位置可用。
Gradle 错误通常出现在 assemble, lint或 build 阶段,通常指向缺失的 ProGuard 基准资源或无效的默认文件引用。
快速背景: ProGuard、R8 和基准文件
- R8 is the modern code shrinker/optimizer in Android builds.
proguard-rules.pro是您的项目/插件自定义保留规则。getDefaultProguardFile(...)注入了 Android 提供的基准。
当您引用时:
proguard-android.txt-> 遗留的最小基准proguard-android-optimize.txt-> 当前环境中的推荐默认现代优化基准
为了 AGP 9 兼容性,切换到 proguard-android-optimize.txt 这是一个实用的解决方案。
一行解决方案
更新插件和应用模块 Gradle 文件:
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
至少检查:
android/build.gradle每个插件example-app/android/app/build.gradle插件仓库- 任何生成/模板文件,创建新插件 Gradle 配置
一个插件的迁移指南
1. 找到旧引用
rg -n "proguard-android\\.txt" android example-app
2. 替换它
perl -pi -e "s/proguard-android\\.txt/proguard-android-optimize.txt/g" \
android/build.gradle example-app/android/app/build.gradle
3. 验证与 Bun
bun run verify:android
如果您的插件包含完整的验证脚本,请运行:
bun run verify
批量更新所有插件仓库
如果您维护多个插件仓库,自动化它:
rg -l "proguard-android\\.txt" capacitor-* \
--glob '!**/node_modules/**' \
--glob '!**/.gradle/**' \
--glob '!**/build/**' \
| xargs perl -pi -e "s/proguard-android\\.txt/proguard-android-optimize.txt/g"
然后验证没有跟踪的插件源仍在使用旧文件:
for d in capacitor-*; do
[ -d "$d/.git" ] || continue
git -C "$d" grep -n "proguard-android\\.txt" -- || true
done
没有匹配结果意味着从跟踪的插件文件中删除了旧基准参考。
Capgo rollout 状态
我们完成了此迁移的所有官方Capgo Capacitor插件仓库和模板:
- 插件Android模块现在引用
proguard-android-optimize.txt - 插件示例Android应用程序也已更新
- 插件骨架模板已更新,以便新插件默认为AGP 9安全
这可以防止在CI之前发生的常见AGP 9升级故障
即使您的构建今天通过了,这也很重要
您可能不会立即看到失败的情况是:
- 您的CI缓存仍然掩盖了问题
- 您在项目中混合使用了不同版本的AGP
- 仅在本地开发中重建了某些模块
但最终,清洁的构建、新的环境或升级的运行器会暴露它。现在的迁移移除了隐蔽的不稳定性。
如果在替换后仍然出现构建错误,进行故障排除
检查以下点:
-
每个模块都已修复。 查看插件模块、应用模块、示例和模板资产
-
共享脚本中没有第二个引用。 在整个仓库(包括自定义Gradle脚本)中进行搜索
-
缓存已清除。 运行 并重建
./gradlew cleanAGP / Gradle / JDK版本已对齐。 使用Android文档支持的AGP版本的组合 -
AGP / Gradle / JDK版本已对齐。 使用Android文档支持的AGP版本的组合
-
CI 使用相同的版本。 将 JDK 和 Gradle 包装器版本固定在 CI 中以避免环境漂移。
-
您没有只修补
node_modules. 修复跟踪的插件源,而不是临时依赖目录。
SEO FAQ:AGP 9 Capacitor 插件构建错误
如何修复 proguard-android.txt 在 AGP 9 中未找到
替换:
getDefaultProguardFile('proguard-android.txt')
用:
getDefaultProguardFile('proguard-android-optimize.txt')
然后运行清洁重建。
为什么我的 Capacitor 插件在升级到 Android Gradle Plugin 9 后会构建失败?
大多数故障来自于插件文件中的遗留 Gradle 配置 android/build.gradle 它们仍然引用 proguard-android.txt. AGP 9 项目应使用 proguard-android-optimize.txt.
什么是许多 Capacitor 插件的最快 AGP 9 迁移路径?
使用一个工作区级别的查找替换命令,然后用 git grep 来验证 bun run verify:android 在代表插件上运行
这是仅仅是一个 Capacitor 问题吗?
不是。任何使用过时的 ProGuard 基线引用(app 或库)的 Android 模块(app 或库)都可能遇到类似的 AGP 9 构建错误。尤其是在插件生态系统中,因为许多仓库共享旧模板。
什么关键词与此迁移相关?
如果您在内部运行手册或支持页面中记录此内容,请包含以下术语:
- AGP 9 构建错误
- Android Gradle Plugin 9 ProGuard 文件丢失
- Capacitor 插件 Android 构建失败
proguard-android.txt替换proguard-android-optimize.txt迁移
相关链接
- Android 开发者: 构建应用概述
- Android Gradle 插件: 发行说明
- Android code 缩小: R8 和规则
- Gradle 文档: 构建工具基础
- Capacitor 文档: 官方文档
- Capgo 文档: 自动更新文档
最终总结
AGP 9 的这个问题虽然简单,但在多插件工作空间中容易被忽略。一旦你在所有相关地方替换 proguard-android.txt 替换 proguard-android-optimize.txt 所有相关地方的
If you use Capgo plugins, this migration is already applied in official repositories so you can upgrade with fewer surprises.
如果你使用了Capacitor插件,这个迁移已经在官方仓库中应用了,所以你可以升级时少一些意外。
继续阅读__CAPGO_KEEP_0__插件AGP 9构建错误修复 Capacitor Plugin AGP 9 Build Error Fix __CAPGO_KEEP_0__插件AGP 9构建错误修复 Capgo CI/CD 为产品工作流程在 Capgo CI/CD 中 Capgo 原生构建 为产品工作流程在 Capgo 原生构建 中 Capgo 集成 为产品工作流程在 Capgo 集成 中 CI/CD 集成 为 __CAPGO_KEEP_0__ 原生构建产品页面中的 Capgo Builder / 原生云构建功能 GitHub Actions Integration GitHub 动作集成