Saya ingin menambahkan layanan lokasi menyatu tetapi itu menunjukkan saya beberapa kesalahan. Tolong aku.
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "27.0.1"
defaultConfig {
applicationId "com.example.adil.bloodbankapplication"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-auth:11.8.0'
compile 'com.google.firebase:firebase-database:11.8.0'
compile 'com.android.support:support-v4:26.1.0'
compile 'junit:junit:4.12'
compile 'com.android.support:design:26.1.0'
compile 'com.github.joielechong:countrycodepicker:2.1.5'
compile 'com.jaredrummler:material-spinner:1.2.4'
compile 'hanks.xyz:htextview-library:0.1.5'
compile 'com.firebaseui:firebase-ui-database:1.2.0'
compile 'com.google.android.gms:play-services:11.8.0'
}
apply plugin: 'com.google.gms.google-services'
android
android-multidex
Muhammad Adil Sattar
sumber
sumber
MyApplication extends android.support.multidex.MultiDexApplication
?Saya memperbaiki masalah saya dengan solusi di bawah ini:
Di file Gradle build, tambahkan dependensi:
Dan kemudian di bagian "defaultConfig", tambahkan:
sumber
memodifikasi aplikasi atau modul Anda
build.gradle
Menurut dokumentasi resmi
https://developer.android.com/studio/build/multidex
sumber
Apa itu file dex: 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.
Alasan pengecualian ini: Spesifikasi DEX membatasi jumlah total metode yang dapat dirujuk dalam satu file DEX menjadi 65.536 (batas referensi 64K) —termasuk metode kerangka kerja Android, metode pustaka, dan metode dalam kode Anda sendiri.
Langkah 01. Tambahkan ketergantungan berikut sebagai berikut
Untuk Pengguna Non-Androidx,
Untuk Pengguna Androidx,
Langkah 02:
Setelah menambahkan proyek Sinkronisasi tersebut dan sebelum Anda menjalankan proyek pastikan untuk Membangun proyek sebelum menjalankan. jika tidak, Anda akan mendapatkan pengecualian.
sumber
Anda bisa mengikuti ini .
Versi platform sebelum Android 5.0 (API level 21) menggunakan runtime Dalvik untuk mengeksekusi kode aplikasi. Secara default, Dalvik membatasi aplikasi ke file bytecode class.dex tunggal per APK. Untuk mengatasi batasan ini, Anda dapat menambahkan pustaka dukungan multidex ke proyek Anda:
Jika minSdkVersion Anda diatur ke 21 atau lebih tinggi, yang perlu Anda lakukan adalah mengatur multiDexEnabled menjadi true dalam file build.gradle tingkat modul Anda, seperti yang ditunjukkan di sini:
sumber
ketika Anda menggunakan dependensi sehingga metode Anda meningkat! Google punya solusi untuk itu. itu disebut Multidex!
CATATAN: pastikan min SDK lebih dari 14.
di build.gradle Anda:
UNTUK PENGGUNAAN AndroidX:
Untuk informasi lebih lanjut silakan kunjungi tautan asli:
https://developer.android.com/studio/build/multidex
sumber
Hai masalahnya di sini hapus
Mengapa?
Catatan: Jangan gunakan target layanan bermain gabungan. Ini membawa puluhan perpustakaan, membengkak aplikasi Anda. Alih-alih, tentukan hanya API layanan Google Play tertentu yang digunakan aplikasi Anda.
Dan gunakan apa yang Anda butuhkan. https://developers.google.com/android/guides/setup
Suka untuk layanan lokasi
Untuk Perpesanan Awan
sumber
Jika Anda sedang membangun DEBUG APK , cukup tambahkan:
dalam
buildTypes
dan jika Anda sedang membangun RELEASE APK , tambahkan
multiDexEnabled true
blok rilis sebagai-sumber
Untuk proyek flutter, Anda juga dapat mengatasi masalah ini
buka \ android \ app \ build.gradle Anda
Anda harus memiliki yang berikut ini:
Jika minSdkVersion Anda diatur ke 21 atau lebih tinggi, yang perlu Anda lakukan adalah mengatur multiDexEnabled menjadi true di defaultConfig. Seperti ini
jika minSdkVersion Anda diatur ke 20 atau lebih rendah, tambahkan multiDexEnabled true ke defaultConfig
Dan tentukan implementasinya
Pada akhirnya Anda harus memiliki:
Untuk informasi lebih lanjut baca ini: https://developer.android.com/studio/build/multidex
sumber
Lakukan saja hal berikut:
Dan tambahkan ketergantungan di bawah ini di
build.gradle
file tingkat aplikasi Andasumber
Silakan coba tambahkan ini di konfigurasi default aplikasi Anda {}. Ini membantu saya untuk menyelesaikan masalah
sumber
Di file Gradle build, tambahkan dependensi:
atau
atau
Dan kemudian di bagian "defaultConfig", tambahkan:
Di bawah targetSdkVersion
Sekarang jika Anda menemukan kesalahan ini
Kesalahan: Gagal menyelesaikan: Buka File multidex-instrumentasi
Anda perlu mengubah tingkat Anda ke 3.0.1
Dan letakkan kode berikut di file gradle-wrapper.properties
distributionUrl = https: //services.gradle.org/distributions/gradle-4.1-all.zip
Akhirnya
tambahkan Aplikasi kelas dalam proyek Dan perkenalkan ke AndroidManifest yang dikembangkan dari MultiDexApplication
}
Jalankan proyek terlebih dahulu untuk membuat kesalahan, lalu bersihkan proyek
Akhirnya, luncurkan kembali proyek dan nikmati
sumber
Jika Anda menggunakan minifyEnabled dengan Proguard, Anda kemungkinan tidak perlu mengaktifkan multi-dex. Saya setuju dengan MG Developer bahwa Anda harus mencoba menghindari multi-dex jika memungkinkan. Solusi saya adalah mengaktifkan multi-dex hanya untuk debug build. minifyEnabled menyelesaikan masalah untuk rilis build
sumber
Saya tidak tahu mengapa, mungkin itu karena saya berkembang di Kotlin tetapi untuk memperbaiki kesalahan ini saya akhirnya harus membuat kelas yang diperluas
MultiDexApplication
seperti ini:dan di saya,
Manifest.xml
saya harus mengaturuntuk tidak membingungkan siapa pun, saya juga melakukan:
untuk androidx, ini juga berfungsi untuk saya:
...
<application android:name="android.support.multidex.MultiDexApplication">
tidak bekerja untuk saya
sumber
Anda memiliki terlalu banyak metode yang dihitung. File Android dex memiliki batas 65536 metode yang diizinkan untuk Anda miliki.
Sebagai permulaan, jika Anda tidak membutuhkan semua API layanan Google Play dan hanya lokasinya, ganti
dengan
Anda dapat merujuk ke halaman ini untuk cara menghindarinya atau jika diperlukan untuk memperbolehkan lebih banyak: https://developer.android.com/studio/build/multidex.html
sumber
Yang harus saya lakukan adalah mengatur Versi SDK Minimum ke 21 di File> Struktur Proyek> Aplikasi> Flavours
sumber
tambahkan file android / app / build.gradle Anda
sumber
Saya telah menjumpai kesalahan ini dua kali dan solusi untuk ini adalah; Periksa file aplikasi gradle Anda untuk melihat SDk target Anda, jika 20 atau lebih tinggi, cukup tambahkan satu baris ke file Anda
defaultconfig { multiDexEnabled true }
Jika targetSDK Anda kurang dari 20, tambahkan baris ke defaultConfig Anda dan juga tambahkan dependensi
Periksa tautan ini untuk informasi lebih lanjut.
https://developer.android.com/studio/build/multidex#mdex-gradle
sumber
Menggunakan dukungan multidex harus menjadi pilihan terakhir. Secara default gradle build akan mengumpulkan banyak dependensi transitif untuk APK Anda. Seperti yang disarankan di Google Developers Docs , upaya pertama untuk menghapus dependensi yang tidak perlu dari proyek Anda.
Menggunakan baris perintah navigasikan ke Android Projects Root. Anda bisa mendapatkan pohon dependensi kompilasi sebagai berikut.
Anda bisa mendapatkan daftar lengkap pohon ketergantungan
Kemudian hapus dependensi transitif yang tidak perlu atau dari aplikasi build.gradle Anda. Sebagai contoh jika aplikasi Anda menggunakan dependensi yang disebut 'com.google.api-client' Anda dapat mengecualikan perpustakaan / modul yang tidak Anda butuhkan.
Kemudian di Android Studio Pilih Build> Analyze APK ... Pilih file release / debug APK untuk melihat isinya. Ini akan memberi Anda jumlah metode dan referensi sebagai berikut.
sumber
Dalam membangun: aplikasi
sumber
sumber
Kesalahan ini disebabkan oleh jumlah dependensi kelas yang Anda miliki di file Gradle aplikasi Anda. Jika kelas melebihi 72.400, Anda mungkin ingin menggunakan multidex sebagai solusi untuk lebih baik menangani pengindeksan file. Cari tahu lebih banyak dari sini: https://developer.android.com/studio/build/multidex
sumber