Setelah mengaktifkan pengoptimalan aplikasi, pastikan aplikasi berfungsi seperti yang diharapkan dan konfigurasi R8 melakukan hal yang Anda harapkan. Langkah-langkah umumnya adalah sebagai berikut:
- Uji perjalanan penting pengguna (CUJ) aplikasi Anda: Misalnya, pastikan pengguna dapat login dan melakukan tugas penting lainnya.
- Ukur peningkatan performa menggunakan benchmark: Lakukan benchmark aplikasi Anda sebelum dan sesudah mengaktifkan pengoptimalan aplikasi.
Jika Anda menemukan masalah, R8 menyediakan alat untuk membantu Anda memecahkan masalah. Jika Anda tidak dapat menyelesaikan masalah dengan R8, laporkan bug.
Tips umum
Masalah dengan R8 sering kali unik untuk aplikasi Anda, tetapi berikut beberapa tips umum untuk memudahkan proses debug:
- Menonaktifkan obfuscation untuk sementara: R8 melakukan obfuscation kode sebagai bagian dari
proses pengoptimalannya. Obfuscation biasanya bukan penyebab error, tetapi
obfuscation membuat error lebih sulit di-debug. Tambahkan flag
‑dontobfuscate
dan‑dontoptimize
ke file aturan keep untuk membantu Anda menemukan kode yang bermasalah. Periksa refleksi: Jika Anda mengalami pengecualian tidak ada elemen tersebut seperti
Caused by: java.util.NoSuchElementException: Collection contains no element matching the predicate in the stack trace
,pengecualian biasanya berarti kolom yang dimaksud digunakan melalui refleksi dan Anda harus menambahkan aturan keep.
Periksa bytecode: Sebagian besar masalah R8 memerlukan pemeriksaan bytecode, yang dapat Anda lakukan dengan alat seperti APK Analyzer.
Memeriksa aturan yang diterapkan
Untuk meng-output laporan lengkap dari semua aturan yang diterapkan R8 saat membuat project
Anda, sertakan baris berikut dalam file proguard‑rules.pro
modul aplikasi Anda:
-printconfiguration <output-dir>/<report-name>.txt
Anda dapat menentukan jalur dan nama file. Jika Anda tidak menentukan jalur atau nama file,
R8 akan menampilkan laporan aturan di <module-name>/build/outputs/mapping/<build-type>/configuration.txt
.
Memahami alasan kode disimpan
Jika Anda melihat kode yang dipertahankan yang seharusnya dihapus, gunakan opsi konfigurasi
‑whyareyoukeeping
untuk membantu memahami alasan kode
dipertahankan. R8 menghasilkan jalur dari kode yang disimpan ke salah satu titik
masuk aplikasi Anda. Untuk informasi selengkapnya, lihat dokumentasi
‑whyareyoukeeping
dalam manual Proguard.
Memulihkan pelacakan tumpukan asli
Kode yang diproses oleh R8 diubah dengan berbagai cara sehingga pelacakan tumpukan tidak lagi merujuk ke kode asli. Misalnya, nomor baris dan nama class dan metode dapat berubah. Untuk memulihkan pelacakan tumpukan yang asli, R8 menyediakan alat command line retrace, yang dipaketkan dengan paket alat command line.
Untuk menggunakan retrace, berikan file pemetaan dan file pelacakan tumpukan. File pemetaan, yang disebut mapping.txt
, otomatis dipaketkan dengan Android App
Bundle (AAB) Anda. Untuk mengetahui detail selengkapnya, lihat dokumentasi retrace dan artikel Pusat
Bantuan Konsol Play tentang cara men-deobfuscate pelacakan tumpukan
error.