Jawaban:
Jawaban ini sangat bergantung pada dokumentasi resmi Android (bagian yang dikutip, khususnya).
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:
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
multiDexEnabled
ketrue
dalam file build.gradle tingkat modul Anda, seperti yang ditunjukkan di sini:
android {
defaultConfig {
...
minSdkVersion 21
targetSdkVersion 26
multiDexEnabled true
}
...
}
Namun, jika Anda
minSdkVersion
diatur 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:
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 26
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
3.2. Bergantung pada apakah Anda menimpa kelas Aplikasi, lakukan salah satu dari yang berikut:
- Jika Anda tidak menimpa
Application
kelas, mengedit file manifest Anda untuk setandroid:name
di<application>
tag sebagai berikut:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
</manifest>
- Jika Anda mengganti
Application
kelas, ubah untuk memperluas MultiDexApplication (jika mungkin) sebagai berikut:
public class MyApplication extends MultiDexApplication { ... }
- 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:
public class MyApplication extends SomeOtherApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Periksa kesalahan dari manifes plugins lainnya dan bersihkan project. Dan sysc lagi.
Jika ada masalah ketergantungan pada proyek Anda, jalankan perintah ini di Terminal Android
% Gradle clean App."App name"
Salin dependensi ini di Tingkat Aplikasi Anda, di bawah dependensi:
compile fileTree(include: ['*.jar'], dir: 'bin')
compile fileTree(include: ['*.jar'], dir: 'libs')
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.
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.