Jika Anda memiliki Capacitor plugin mulai gagal setelah mengupgrade ke Android Gradle Plugin 9 (AGP 9), Anda mungkin mengalami masalah konfigurasi Gradle kecil tetapi kritis.
This post secara khusus menargetkan niat pencarian umum seperti:
- Capacitor plugin error pembangunan AGP 9
- plugin pembangunan AGP 9 gagal
proguard-android.txttidak ditemukan- AGP 9
getDefaultProguardFileerror - Capacitor pembangunan Android gagal setelah upgrade AGP
The short version:
proguard-android.txtsudah tidak lagi menjadi dasar aman untuk merujuk dalam pembangunan plugin AGP 9.- Switch ke
proguard-android-optimize.txt. - Rebuild dan verifikasi.
Versi yang lebih panjang juga penting, terutama jika Anda menjaga banyak plugin atau workspace besar Capacitor. Dalam artikel ini kami membahas:
- Apakah Android dan AGP dalam rantai pembangunan
- Apakah Capacitor dan bagaimana plugin dibangun
- Apakah Capgo adalah dan mengapa ini penting untuk keandalan rilis
- Perubahan AGP 9 yang tepat yang mengganggu template plugin lama
- Strategi migrasi aman untuk satu repositori atau banyak repositori
Apakah Android dalam konteks ini?
Android adalah baik sistem operasi maupun ekosistem pembangunan. Ketika Anda mengirimkan aplikasi atau plugin Capacitor pada Android, proyek Anda melalui:
- Gradle sebagai sistem pembangunan.
- Android Gradle Plugin (AGP) sebagai integrasi Gradle khusus Android.
- Alat Android SDK untuk pengemasan, pengurangan, pengecekan kesalahan, dan menghasilkan
.aar,.apk, atau.aaboutput.
Ketika versi AGP berubah, beberapa default dan file internal juga dapat berubah. Konfigurasi plugin yang berfungsi untuk AGP 8 dapat gagal pada AGP 9 jika mengacu pada garis dasar yang dihapus atau yang sudah tidak digunakan lagi.
Apa itu Capacitor?
Capacitor is a cross-platform runtime that lets you build iOS/Android apps with web code (TypeScript, JavaScript, HTML, CSS) while still calling native APIs.
adalah runtime lintas platform yang memungkinkan Anda membangun aplikasi iOS/Android dengan web Capacitor (TypeScript, JavaScript, HTML, CSS) sambil masih memanggil API native.
- Aplikasi __CAPGO_KEEP_0__ biasanya mencakup:
- Shells asli (
ios/,android/) - Plugin yang mengungkapkan fitur asli ke JavaScript
Setiap plugin memiliki konfigurasi pembangunan asli sendiri. Pada Android, ini berarti setiap plugin termasuk file yang AGP harus memproses dan mengompilasi dengan benar. android/build.gradle Jika pengaturan Gradle plugin sudah ketinggalan zaman, proses pembangunan aplikasi seluruhnya dapat gagal, bahkan ketika __CAPGO_KEEP_0__ web Anda sudah benar.
Apa itu code?
Capgo
Capgo provides tools around Capacitor delivery and operations:
- menawarkan alat sekitar pengiriman dan operasi __CAPGO_KEEP_0__: Perbaruan hidup
- context
- CI/CD-friendly update workflows for Capacitor teams
Meskipun dengan pembaruan langsung, kestabilan pembangunan native tidak dapat ditawar. Anda masih memerlukan pembangunan Android yang bersih untuk:
- Rilis App Store / Play Store
- Pembaruan plugin native
- Migrasi platform SDK
- Penyertaan tim dan keandalan CI
Alasan itu, perbaikan kompatibilitas AGP 9 penting: mereka menjaga lapisan plugin andal, sehingga pipa pengiriman tetap dapat diprediksi.
Mengapa AGP 9 mengganggu konfigurasi plugin yang lebih tua
Banyak template plugin sejarahnya menggunakan:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
Dalam pengaturan AGP 9, referensi dasar yang sudah ketinggalan zaman ini dapat gagal karena file lama tidak lagi dapat dipastikan ada di lokasi yang diharapkan oleh template/config yang lebih tua.
Gejala yang umum termasuk kesalahan Gradle selama assemble, lint, atau build tahap, sering menunjukkan sumber daya ProGuard dasar yang hilang atau referensi file default yang tidak valid.
Ringkasan singkat: ProGuard, R8, dan file dasar
- R8 adalah pengurang/optimasi modern code dalam pembangunan Android.
proguard-rules.proadalah aturan pengecualian kustom Anda untuk proyek/plugin.getDefaultProguardFile(...)menambahkan file dasar yang disediakan oleh Android.
Jika Anda mengacu pada:
proguard-android.txt−> dasar minimal legacyproguard-android-optimize.txt−> dasar yang dioptimalkan modern (rekomendasi default dalam pengaturan saat ini)
Untuk konsistensi dengan AGP 9, mengganti ke proguard-android-optimize.txt adalah solusi yang praktis.
Solusi satu baris:
Perbarui file Gradle plugin dan modul aplikasi:
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
Setidaknya, periksa:
android/build.gradledalam setiap pluginexample-app/android/app/build.gradledalam repositori plugin- File generator/template mana pun yang menciptakan konfigurasi Gradle baru untuk plugin
Petunjuk migrasi untuk satu plugin
1. Temukan referensi lama
rg -n "proguard-android\\.txt" android example-app
Ganti dengan yang baru
perl -pi -e "s/proguard-android\\.txt/proguard-android-optimize.txt/g" \
android/build.gradle example-app/android/app/build.gradle
3. Verifikasi dengan Bun
bun run verify:android
Jika plugin Anda memiliki skrip verifikasi lengkap, jalankan:
bun run verify
Perbarui secara batch semua repositori plugin
Jika Anda menjaga banyak repositori plugin dalam satu workspace, otomatisasikan:
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"
Lalu validasi bahwa tidak ada sumber plugin yang diikuti masih menggunakan file lama:
for d in capacitor-*; do
[ -d "$d/.git" ] || continue
git -C "$d" grep -n "proguard-android\\.txt" -- || true
done
Tidak ada match berarti referensi baseline lama hilang dari file plugin yang diikuti.
Capgo status peluncuran
Kami telah menyelesaikan migrasi ini di semua repositori dan template plugin resmi Capgo Capacitor:
- Modul Android plugin sekarang mengacu pada
proguard-android-optimize.txt - Contoh aplikasi Android plugin telah diperbarui juga
- Template penggalian plugin telah diperbarui sehingga plugin baru aman secara default dari AGP 9
Hal ini mencegah jenis kesalahan klasik AGP 9 sebelum mereka mengenai CI.
Mengapa ini penting bahkan jika build Anda berhasil hari ini
Anda mungkin tidak melihat gagal segera jika:
- Cache CI Anda masih menyembunyikan masalah
- Anda memiliki versi AGP campuran di proyek-proyek
- Hanya beberapa modul yang dibangun kembali di dev lokal
Namun, akhirnya, bangunan bersih, lingkungan baru, atau pengguna runner yang ditingkatkan mengungkapkannya. Melakukan migrasi sekarang menghilangkan ketidakstabilan yang disembunyikan.
Troubleshooting jika bangunan masih gagal setelah penggantian
Periksa poin-poin berikut:
-
Setiap modul telah diperbaiki. Lihat modul plugin, modul aplikasi, contoh, dan aset template.
-
Tidak ada referensi kedua di skrip bersama. Cari seluruh repositori (termasuk skrip Gradle kustom).
-
Cache bersih. Jalankan dan bangun kembali.
./gradlew cleanVersi AGP / Gradle / JDK disesuaikan. Gunakan kombinasi yang didukung oleh dokumentasi Android untuk versi AGP Anda. -
CI menggunakan versi yang sama dengan lokal. Tetapkan versi JDK dan wrapper Gradle di CI untuk menghindari pergeseran lingkungan.
-
Anda tidak hanya memperbaiki . Perbaiki sumber plugin yang dipantau, bukan direktori dependensi transien.
-
Pertanyaan SEO: AGP 9 __CAPGO_KEEP_0__ error bangunan plugin
node_modulesFix
SEO FAQ: AGP 9 Capacitor plugin build errors
Bagaimana cara saya memperbaiki proguard-android.txt tidak ditemukan di AGP 9?
Ganti dengan:
getDefaultProguardFile('proguard-android.txt')
Dengan:
getDefaultProguardFile('proguard-android-optimize.txt')
Lalu jalankan pembangunan kembali yang bersih.
Mengapa plugin Capacitor saya gagal dibangun setelah mengupgrade ke Android Gradle Plugin 9?
Kebanyakan gagalnya berasal dari konfigurasi Gradle legacy di plugin android/build.gradle yang masih mengacu pada proguard-android.txt. AGP 9 harus menggunakan proguard-android-optimize.txt.
Apa jalur migrasi AGP 9 yang paling cepat untuk banyak plugin Capacitor?
Gunakan perintah pencarian dan penggantian yang berlaku di workspace, kemudian validasi dengan git grep dan jalankan bun run verify:android plugin-plugin representatif.
Apakah ini hanya masalah Capacitor?
Tidak. Apapun modul Android (aplikasi atau library) yang menggunakan referensi ProGuard yang sudah usang dapat mengalami kesalahan build AGP 9 yang sama. Hal ini sangat terlihat dalam ekosistem plugin karena banyak repository yang membagikan template lama.
Kata kunci apa yang relevan untuk migrasi ini?
Jika Anda mendokumentasikan hal ini dalam buku petunjuk internal atau halaman dukungan, termasuk istilah seperti:
- Kesalahan build AGP 9
- File ProGuard Android Gradle Plugin 9 hilang
- Capacitor plugin Android gagal build
proguard-android.txtpenggantiproguard-android-optimize.txtmigrasi
Tautan terkait
- Pengembang Android: Ringkasan pembangunan aplikasi Anda
- Android Gradle Plugin: Catatan rilis
- Pengurangan Android code: R8 dan aturan
- Dokumen Gradle: Dasar-dasar alat pembangunan
- Dokumen Capacitor: Dokumentasi resmi
- Dokumen Capgo: Dokumen auto update
Kesimpulan akhir
Pertanyaan AGP 9 ini sederhana, tapi mudah dilupakan dalam workspace plugin multi. proguard-android.txt Jika Anda mengganti proguard-android-optimize.txt di mana-mana yang relevan, pembangunan Android menjadi prediktif lagi.
Jika Anda menggunakan plugin Capgo, migrasi ini sudah diterapkan di repositori resmi sehingga Anda dapat mengupgrade dengan lebih sedikit kejutan.
Teruskan dari Capacitor Plugin AGP 9 Build Error Fix
Jika Anda menggunakan Capacitor Plugin AGP 9 Build Error Fix untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo CI/CD untuk alur kerja produk di Capgo CI/CD, Capgo Native Builds untuk alur kerja produk di Capgo Native Builds, Integrasi Capgo untuk alur kerja produk dalam Capgo Integrasi Pengintegrasian CI/CD untuk detail implementasi dalam Pengintegrasian CI/CD, dan Pengintegrasian Aksi GitHub untuk detail implementasi dalam Pengintegrasian Aksi GitHub