あなたの Capacitor AGP 9 にアップグレードした後、プラグインが失敗した場合、Android Gradle Plugin 9 (AGP 9) の小さながしかし重要な Gradle 設定問題に当たっている可能性があります。
この投稿は、次のような一般的な検索の意図を対象としています:
- Capacitor プラグイン ビルド エラー AGP 9
- Android Gradle Plugin 9 プラグイン ビルド失敗
proguard-android.txt見つかりません- AGP 9
getDefaultProguardFileエラー - Capacitor Android ビルドが AGP アップグレード後に失敗しました
要約の短いバージョン:
proguard-android.txtAGP 9 プラグイン ビルドで、短いバージョンは安全なデフォルトの基準として参照できなくなりました。- Switch to
proguard-android-optimize.txt. - 再構築して確認してください。
長いバージョンも重要です。特に、多くのプラグインを管理している場合や、大規模な Capacitor ワークスペースを保守している場合にそうです。この記事では、以下の内容について説明します。
- Android と AGP がビルド チェーンにどのように関係しているか
- Capacitor とは何か、プラグイン ビルドのしくみ
- What Capgo Androidプラットフォームとそのビルドエコシステムです。
- AGP 9の変更が古いプラグインテンプレートを破壊する正確なものは何ですか。
- 1つのリポジトリまたは多くのリポジトリに対する安全な移行戦略
この文脈における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 ビルドシステムとしてGradle
- Android Gradle プラグイン (AGP) Android固有のGradle統合としてAGP
- AndroidのSDKツールチェーンは、パッケージング、縮小、linting、および生産のために
.aar,.apk、または.aab出力。
AGP のバージョンが変更された場合、既定値や内部ファイルも変更されることがあります。AGP 8 で機能していたプラグイン設定が AGP 9 で機能しない場合、削除されたまたは非推奨のベースラインに指している可能性があります。
何が Capacitor ですか?
Capacitor Capacitor は、iOS/Android アプリを構築するのに使えるクロスプラットフォーム ランタイムです。TypeScript、JavaScript、HTML、CSS などのウェブ code を使ってアプリを構築できます。ウェブ code を使ってアプリを構築すると、ネイティブ API を呼び出すことができます。
ウェブ Capacitor アプリは通常、以下の構成を持ちます。
- ウェブ層 (UI とビジネスロジック)
- ネイティブシェル
ios/,android/) - JavaScript にネイティブ機能を公開するプラグイン
各プラグインにはネイティブビルド設定があります。Android の場合、これは AGP が正しくパースしてコンパイルする必要があるファイルです。 android/build.gradle AGP が正しくパースおよびコンパイルする必要があるファイル。
code
What is Capgo?
Capgo provides tools around Capacitor delivery and operations:
- CapacitorプラグインのビルドエラーをAGP 9で修正する方法 Capgoは、CapacitorプラグインのビルドエラーをAGP 9で修正する方法についてのブログ記事です。
- CapacitorプラグインのビルドエラーをAGP 9で修正する方法
- CI/CD-friendly update workflows for Capacitor teams
CapacitorプラグインのビルドエラーをAGP 9で修正する方法
- Capgoは、CapacitorプラグインのビルドエラーをAGP 9で修正する方法についてのブログ記事です。
- CapacitorプラグインのビルドエラーをAGP 9で修正する方法
- Platform SDK migrations
- CapacitorプラグインのビルドエラーをAGP 9で修正する方法
AGP 9の互換性の修正は重要なので、プラグイン層が信頼できるまま、配信パイプラインが予測可能なままになるようにするためです。
AGP 9は古いプラグイン設定を破壊する理由は何ですか
多くのプラグインテンプレートは歴史的に使用されていました
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
AGP 9の設定では、このレガシーバイナリ参照は失敗する可能性があります。なぜなら、古いファイルは、古いテンプレート/設定によって期待される場所に保証されていないからです。
GradleエラーがGradleビルドプロセス中に発生したり、またはプロセスの特定のフェーズで発生したりすることがよくあります。 assemble, lint, or build これらのエラーは、プロテクトファイルが見つからない、または無効なデフォルトファイル参照が存在することを示しています。
プロテクトファイル、R8、および基準ファイルについての簡単な説明
- R8 はAndroidビルドで使用される現代的なcode圧縮/最適化ツールです。
proguard-rules.proはプロジェクト/プラグインのカスタムキープルールです。getDefaultProguardFile(...)はAndroidから基準ファイルをインジェクトします。
Capgoでは、次の場合にエラーが発生します:
proguard-android.txt→ legacy, minimal baselineproguard-android-optimize.txt→ modern optimized baseline (現在のセットアップで推奨されるデフォルト)
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つのプラグインの移行ガイド
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
Capacitor プラグインのビルドエラーを AGP 9 で修正する
bun run verify
バッチですべてのプラグインリポジトリを更新する
多くのプラグインリポジトリを 1 つのワークスペースで管理する場合は、自動化する
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 のロールアウト状況
公式の Capgo Capacitor プラグインリポジトリとテンプレートのこの移行を全て完了しました
- プラグインの Android モジュールは
proguard-android-optimize.txt - プラグインの例の Android アプリも更新されました
- プラグインの骨格テンプレートが更新され、デフォルトでAGP 9に対応した新しいプラグインが作成されます。
これにより、CIでアップグレード失敗することの一般的なクラスを、CIで失敗する前に防ぎます。
なぜこれは今すぐ重要なのか、もしもビルドが成功している場合
ビルドが今すぐに失敗しない理由は
- CIキャッシュが問題を隠している
- プロジェクト間でAGPのバージョンが混在している
- ローカル開発でのみ一部のモジュールが再構築されている
しかし、最終的には、クリーンビルド、新しい環境、またはアップグレードされたランナーが問題を明らかにします。早期に移行することで、潜在的な不安定性を排除できます。
ビルドがまだ失敗する場合のトラブルシューティング
確認するポイントは
-
すべてのモジュールが修正されているか。 プラグインモジュール、アプリモジュール、サンプル、テンプレートアセットを確認してください。
-
共有スクリプト内に2回目の参照がないか。 リポジトリ全体(包括Gradleスクリプト)を検索してください。
-
キャッシュはクリーンです。 実行
./gradlew cleanそして再構築 -
AGP / Gradle / JDK のバージョンは一致しています。 Android ドキュメントでサポートされている AGP バージョンに合った組み合わせを使用してください。
-
CI はローカルと同じバージョンを使用しています。 CI で JDK と Gradle wrapper のバージョンを固定して、環境のずれを避けましょう。
-
ただし、次の点は修正していません
node_modules。 修正するのは、追跡されているプラグインのソース、ではなく、臨時依存ディレクトリです。
SEO FAQ: AGP 9 Capacitor プラグインビルドエラー
AGP 9 でのプラグインビルドエラーを修正するにはどうすればいいですか? proguard-android.txt 置き換え:
にします。
getDefaultProguardFile('proguard-android.txt')
With:
getDefaultProguardFile('proguard-android-optimize.txt')
キャッシュはクリーンです。 実行
Android Gradle プラグイン 9 にアップグレードした後、Capacitor プラグインのビルドが失敗するのはなぜですか?
ほとんどの失敗は、プラグインファイル内の古い Gradle 設定が原因です。 android/build.gradle まだ AGP 9 のプロジェクトで参照している proguard-android.txtAGP 9 のプロジェクトでは proguard-android-optimize.txt.
What is the fastest AGP 9 migration path for many Capacitor plugins?
ワークスペース全体で検索置換コマンドを実行し、代表的なプラグインで検証し、実行してください。 git grep と実行 bun run verify:android いいえ。プロキシングのベースライン参照を使用している Android モジュール (アプリまたはライブラリ) は、類似の AGP 9 ビルドエラーに遭遇する可能性があります。特にプラグインエコシステムでは、多くのリポジトリが古いテンプレートを共有しているため、目立つことがあります。
Is this only a Capacitor issue?
内部の実行本やサポートページでこの内容を記載する場合は、以下の用語を含めてください。
Capacitor プラグインのビルドエラーを AGP 9 で修正する
Capacitor プラグインのビルドエラーを AGP 9 で修正する
- AGP 9 ビルドエラー
- Android Gradle プラグイン 9 ProGuard ファイルが見つかりません
- Capacitor プラグイン Android ビルド失敗
proguard-android.txt置き換えproguard-android-optimize.txt移行
関連リンク
- Android Developers: アプリをビルドする方法
- Android Gradle プラグイン: リリースノート
- Android code シリンギング: R8とルール
- Gradle ドキュメント: ビルドツールの基本
- Capacitor ドキュメント: 公式ドキュメント
- Capgo ドキュメント: 自動更新ドキュメント
最終的なまとめ
AGP 9 のこの問題は単純ですが、複数のプラグインを使用するワークスペースでは見落としやすいです。 __CAPGO_KEEP_0__ をすべての関連箇所に置き換えると、Android のビルドが予測可能になります。 proguard-android.txt with proguard-android-optimize.txt __CAPGO_KEEP_0__ プラグイン AGP 9 ビルド エラー修正
Capgo は Capgo の内部名です。
Capacitor は Capgo の内部名です。
Capgoを使用している場合 Capacitor プラグイン AGP 9 ビルド エラー修正 CI/CD自動化を計画するには、__CAPGO_KEEP_0__ CI/CDと接続する Capgo CI/CD 製品ワークフロー内でCapgo CI/CDを使用 Capgo ネイティブ ビルド 製品ワークフロー内でCapgo ネイティブ ビルドを使用 Capgo インテグレーション 製品ワークフロー内でCapgo インテグレーションを使用 CI/CD統合 実装詳細はCI/CD統合の GitHub アクション統合 Capgoの実装詳細についてはGitHubアクションの統合です。