Saya baru saja mendapat masalah terkait metode 64k di Unity jadi itu sebabnya saya tidak dapat membangun proyek saya. Ini menunjukkan batasan metode melebihi batas hitungan metode 64k. Jadi, adakah yang bisa membantu saya menyelesaikan masalah ini di sini?
Cara mengatur Dukungan Multidex untuk Proyek Persatuan
Apa itu Multidex:
File aplikasi Android (APK) berisi file bytecode yang dapat dieksekusi dalam bentuk file Dalvik Executable (DEX), yang berisi kode yang dikompilasi yang digunakan untuk menjalankan aplikasi Anda. Spesifikasi Dalvik Executable membatasi jumlah metode yang dapat dirujuk dalam satu file DEX menjadi 65.536, termasuk metode kerangka kerja Android, metode pustaka, dan metode dalam kode Anda sendiri. Untuk melewati batas ini, Anda harus mengkonfigurasi proses pembuatan aplikasi untuk menghasilkan lebih dari satu file DEX, yang dikenal sebagai konfigurasi multi dex.
Ketika kami menggunakan Multidex:
Ketika kami melebihi jumlah total metode yang dapat direferensikan dalam satu file DEX menjadi 65.536 - termasuk metode kerangka kerja Android, metode pustaka, dan metode dalam kode Anda sendiri.
Hindari batas 64K
Sebelum mengonfigurasi aplikasi Anda untuk memungkinkan penggunaan 64K atau lebih banyak referensi metode, Anda harus mengambil langkah-langkah untuk mengurangi jumlah total referensi yang dipanggil oleh kode aplikasi Anda, termasuk metode yang ditentukan oleh kode aplikasi Anda atau perpustakaan yang disertakan. Strategi berikut dapat membantu Anda menghindari batasan referensi DEX:
Tinjau dependensi langsung dan transitif aplikasi Anda - Pastikan setiap ketergantungan perpustakaan besar yang Anda sertakan dalam aplikasi Anda digunakan dengan cara yang melebihi jumlah kode yang ditambahkan ke aplikasi. Anti-pola umum adalah memasukkan perpustakaan yang sangat besar karena beberapa metode utilitas bermanfaat. Mengurangi ketergantungan kode aplikasi Anda seringkali dapat membantu Anda menghindari batas referensi DEX.
Hapus kode yang tidak digunakan dengan ProGuard - Aktifkan penyusutan kode untuk menjalankan ProGuard untuk versi rilis Anda. Mengaktifkan penyusutan memastikan Anda tidak mengirimkan kode yang tidak digunakan dengan APK Anda.
Selain dari tips resmi ini, ketika membangun proyek Unity Anda, mengikuti langkah-langkah ini akan membantu Anda lebih lanjut:
Bangun Proyek Android dari Editor Persatuan Anda.
Impor Proyek Android Anda di Android Studio.
Menyiapkan proyek aplikasi Anda untuk menggunakan konfigurasi multi dex mengharuskan Anda membuat modifikasi berikut.
Jika minSdkVersion Anda diatur ke 21 atau lebih tinggi, semua yang perlu Anda lakukan diatur multiDexEnabledke truedalam file build.gradle tingkat modul Anda, seperti yang ditunjukkan di sini:
Namun, jika Anda minSdkVersiondiatur ke 20 atau lebih rendah, maka Anda harus menggunakan pustaka dukungan multidex sebagai berikut:
3.1. Ubah file build.gradle tingkat modul untuk mengaktifkan multidex dan tambahkan pustaka multidex sebagai ketergantungan, seperti yang ditunjukkan di sini:
Atau jika Anda mengganti kelas Aplikasi tetapi tidak mungkin untuk mengubah kelas dasar, maka Anda dapat mengganti metode attachBaseContext () dan memanggil MultiDex.install (ini) untuk mengaktifkan multidex:
Tambahkan SignConfig penandatanganan di proyek utama Anda Gradle.
Atau atur mode Penandatanganan ke mode Debug secara manual, Buka File -> Struktur Proyek -> Di Bawah Modul Klik proyek Anda dan di bawah Tipe Build pilih Debug -> pilih Signing Config-> debug
Sekarang sinkronkan Gradle Anda dan bangun proyek.
Seberapa besar proyek Anda yang menyebabkan kesalahan ini?
Evorlor
1
Sebenarnya, saya menggunakan mediasi Google AdMob sehingga untuk yang digunakan untuk menambahkan 6-7 iklan SDK sehingga metode proyek akhir saya adalah sekitar 76rb.
Rakesh
0
Saya akan merekomendasikan Anda untuk pergi melalui tautan ini yang akan membantu Anda untuk membuat game-game dengan multidex langsung melalui kesatuan.
Catatan: Ini hanya akan mengaktifkan multidex dalam kesatuan itu sendiri (dan harus memperbaiki masalah multidex). Itu tidak akan memperbaiki masalah terkait tingkat.
Ini saat ini merupakan jawaban tautan saja: meskipun tautan menjawab pertanyaan, jawabannya tidak. Anda mungkin ingin memasukkan inti dari konten yang tertaut di sini (tautan itu sendiri tidak buruk, hanya memiliki tautan yang buruk saja).
Vaillancourt
Saya setuju dengan Anda tetapi langkah-langkah yang ditulis terlalu banyak. Itu sebabnya saya harus membuat artikel dan membagikan tautannya. Saya lebih suka cara itu sehingga saya hanya akan memiliki satu sumber kebenaran daripada menciptakan banyak sumber.
Abhishek Patidar
Di mengerti tapi bukan itu cara kerja situs Stack Exchange: jawaban tautan saja bisa dihapus.¤ Jika Anda mau, saya bisa mengonversi jawaban ini ke komentar pertanyaan: Anda akan membuat referensi Anda tetap terlihat untuk pengguna di masa depan, dan kami menang tidak memiliki jawaban hanya tautan. (Issue Masalah utama dengan jawaban hanya tautan adalah bahwa jika Anda menurunkan situs Anda (atau ISP Anda bangkrut dengan semua data Anda), jawaban ini akan sama sekali tidak berharga; inilah mengapa jawabannya harus menjawab pertanyaan.)
Vaillancourt
Masuk akal. Saya akan mengubah jawaban saya menjadi instruksi lengkap.
Saya akan merekomendasikan Anda untuk pergi melalui tautan ini yang akan membantu Anda untuk membuat game-game dengan multidex langsung melalui kesatuan.
https://medium.com/@abhpatidar/solving-unity-dex-issue-538e134c8809
Catatan: Ini hanya akan mengaktifkan multidex dalam kesatuan itu sendiri (dan harus memperbaiki masalah multidex). Itu tidak akan memperbaiki masalah terkait tingkat.
sumber