跳过主要内容

Capacitor插件AGP 9构建错误修复

快速解决AGP 9 Capacitor插件构建错误。了解为什么proguard-android.txt失败,如何使用proguard-android-optimize.txt,以及Capgo如何修复Android Gradle Plugin 9插件问题。

文章贡献者

马丁·多纳迪尤

作者

瓦莱里亚

审阅者

乔丹

编辑器

Capacitor 插件 AGP 9 构建错误修复

如果您的 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.txt Android Gradle Plugin 9 插件构建失败
  • 未找到 getDefaultProguardFile AGP 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:

  1. Gradle 作为构建系统。
  2. Android Gradle Plugin(AGP) 作为Android特定的Gradle集成。
  3. 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, lintbuild 阶段,通常指向缺失的 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
  • 仅在本地开发中重建了某些模块

但最终,清洁的构建、新的环境或升级的运行器会暴露它。现在的迁移移除了隐蔽的不稳定性。

如果在替换后仍然出现构建错误,进行故障排除

检查以下点:

  1. 每个模块都已修复。 查看插件模块、应用模块、示例和模板资产

  2. 共享脚本中没有第二个引用。 在整个仓库(包括自定义Gradle脚本)中进行搜索

  3. 缓存已清除。 运行 并重建 ./gradlew clean AGP / Gradle / JDK版本已对齐。 使用Android文档支持的AGP版本的组合

  4. AGP / Gradle / JDK版本已对齐。 使用Android文档支持的AGP版本的组合

  5. CI 使用相同的版本。 将 JDK 和 Gradle 包装器版本固定在 CI 中以避免环境漂移。

  6. 您没有只修补 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 迁移

最终总结

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 动作集成

Capacitor应用的实时更新

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

当一个web层bug活跃时,通过__CAPGO_KEEP_0__将修复推送给用户,而不是等待几天的应用商店审批。用户在后台接收更新,而native改变仍然在正常的审批路径中。

上下文:Capgo营销网站。角色:支持描述段落或元描述。见于:组件GetStarted.astro。保留Capgo产品/品牌和开发者术语的准确性。信息键`instant_updates_for_capacitor_apps_description`(Capacitor应用的实时更新描述)。

来自马丁的人性化支持

Capgo gives you the best insights you need to create a truly professional mobile app.