Cara mengatasi error STRING_TOO_LARGE [solved]

   بِسْمِ اللّهِ الرَّحْمَنِ الرَّحِيْمِ

 

Memang ada beberapa penyebab error build karena string too large to encode using UTF-8 written instead as 'STRING_TOO_LARGE'. Salah satu penyebabnya karena kita memasukkan resource vector yang besar yang menyebabkan error build string too large ini. Jika antum merasa memakai beberapa resource vector di drawable tidak ada salahnya mencoba langkah ini, banyak langkah yang bisa ditempuh walhamdulillah barokallahufiikum. Cara solve error string too large paling simple nya yakni clean gradle atau by command :

./gradlew cleanBuildCache

Tapi ini tidak permanent terkadang dalam build kedepan akan mengalami error yang sama, solusi kedua bisa downgrade project gradle menjadi classpath 'com.android.tools.build:gradle:3.1.3' Tapi ini pun jika antum mau memakai versi lama, jika langkah ini juga tidak berkenan. Langsung saja kita breakdown issuenya dengan manual step sebagai berikut, pertama kita cari file vector yang bermasalah.

Bisa menggunakan command (aapt sendiri filenya ada di /Android/Sdk/build-tools/{versi_build_antum}) :

./aapt dump --values resources app-debug.apk | grep -B 1 'STRING_TOO_LARGE'

Dari langkah diatas nanti akan dapat kembalian file vector apa saja yang error. 

Sayangnya di laptop ana langkah tersebut tidak bekerja, ana juga belum mencari solusi terkait aapt diatas (barangkali bisa pakek fitur analyze apk yang sudah built-in di android studio terbaru, silahkan bagi yg tau bisa tambah komentar, semoga bermanfaat juga bagi yg lain, barokallahufiikum), tapi ada alternatif yang bisa dilakukan. Dengan memanfaatkan online decompiler salah satunya http://www.javadecompilers.com/ nanti hasil apk decompiler nya di extract dan di dalam folder tersebut silahkan di cari string 'STRING_TOO_LARGE' atau bisa by command : grep -r "STRING_TOO_LARGE" . atau grep -r "STRING_TOO_LARGE" namaFolderDecompile , Ala kulli hal (intinya) antum harus dapat file vector apa yang error.

 

Setelah antum mendapatkan list file vector apa saja yang error, sekarang cara mengatasi error file vectornya dengan mengoptimasi dan meminimalisasi kompleksitas file vector.xml tersebut, salah satunya memakai avocado tools. Anda bisa memakai secara cli (by command / command line interface) melalui repo git nya di https://github.com/alexjlockwood/avocado atau memakai nya secara GUI via plugin https://github.com/mgarciaguerrero/avocado-plugin. Dan ketika catatan ini dibuat, ana cek di plugin android studio nya, qoddarullah sepertinya pluginya sudah non aktif, dengan kata lain antum pasang manual dengan cara mendownload pluginya (ana pakai .jar) di https://github.com/mgarciaguerrero/avocado-plugin/releases kemudian pasang pluginya di android studio dengan langkah berikut :

 

  1. Klik File -> Pengaturan
  2. Klik "Plugins" di panel kiri jendela popup dan klik di atasnya
  3. Klik Gear di kanan atas
  4. Klik "Instal Plugin dari Disk"
  5. Temukan plugin Antum dari file browser atau seret dan lepas (drag and drop) dari jendela lain untuk membuka plugin di jendela jelajah, lalu klik di atasnya lalu klik "OK"
  6. Jendela jelajah akan ditutup
  7. Klik "OK" di jendela pengaturan
  8. Klik "Restart" (jika ada popup)

 

Cara memakai yang versi plugin (GUI) dengan cara klik kanan nama file vector yang bermasalah tadi lalu klik Optimize vector atau jika ingin mengoptimasi semua file vector yang antum pakai di proyek antum bisa dengan klik kanan pada folder res/drawable lalu pilih Optimize all vectors. Jika memakai versi cli bisa dengan command avocado vector.xml atau (semua file vector xml dalam folder) avocado -d namaFolder.

 

Alhamdulillah, Sekian semoga bermanfaat dan semoga Allah memberi kita tawfik.

 

Note : Plugin avocado nya otomatis akan ke uninstall setelah restart (kemungkinan memang karena deprecated) tapi avocado tool nya tetap terinstall di system (jadi bisa ulangi langkah pasang plugin avocado compress svg di android studio saja) atau alternatif lain bisa langsung pakai versi cli nya.

Update : Setelah berjalannya waktu, kami menemukan ada file vector yang sudah di kompresi menggunakan tekhnik ini tetap saja masih besar, silahkan bisa merujuk ke https://situbondoprogrammer.blogspot.com/2021/05/fixing-vector-too-big-large-file.html barakallahufiikum.

اَللّٰهُ أَعْلَم‎

Share this:

Tidak ada komentar