Saya mendapatkan kesalahan ini saat menjalankan aplikasi Android saya (saya membersihkannya dan kemudian membuatnya, tetapi kesalahan tersebut masih ada)
- Sinkronisasi: Oke
- Buat Proyek: OK
- Bersih: OK
- Jalankan: Kesalahan
Kesalahan: Eksekusi gagal untuk tugas ': app: dexDebug' .com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command' C: \ Program Files \ Java \ jdk1.7.0 _25 \ bin \ java.exe '' selesai dengan nilai keluar bukan nol 2
File gradle saya:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.rzr.rzevallosr.miappdepruebas"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// This library handles authentication and authorization
compile 'com.spotify.sdk:spotify-auth:1.0.0-beta9@aar'
// This library handles music playback
compile 'com.spotify.sdk:spotify-player:1.0.0-beta9@aar'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.+'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile files('libs/spotify-web-api-android-master-0.1.0.jar')
compile files('libs/okio-1.3.0.jar')
}
EDIT: Saya tidak melihat "kompilasi fileTree (dir: 'libs', include: ['* .jar'])" itu mengkompilasi dua kali perpustakaan saya, jadi saya hanya berkomentar:
//compile 'com.squareup.retrofit:retrofit:1.9.0'
//compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
//compile 'com.squareup.okhttp:okhttp:2.2.0'
//compile files('libs/spotify-web-api-android-master-0.1.0.jar')
//compile files('libs/okio-1.3.0.jar')
dan itu bekerja dengan baik.
android
asp.net-web-api
gradle
build.gradle
Maverick.pe
sumber
sumber
Jawaban:
Masalah ini sangat mungkin karena melebihi batas 65K metode dex yang diberlakukan oleh Android. Masalah ini dapat diselesaikan baik dengan membersihkan proyek, dan menghapus beberapa pustaka dan metode yang tidak digunakan dari dependensi di build.gradle, ATAU dengan menambahkan dukungan multidex.
Jadi, Jika Anda harus menyimpan pustaka dan metode, Anda dapat mengaktifkan dukungan multi dex dengan mendeklarasikannya di konfigurasi gradle.
defaultConfig { // Enabling multidex support. multiDexEnabled true }
Anda dapat membaca lebih lanjut tentang dukungan multidex dan mengembangkan aplikasi dengan lebih dari 65 ribu metode di sini .
sumber
./gradlew assembleDebug --stacktrace --debug
. Saya telah melihat kesalahan ini dalam kasus sayacom.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Bagi saya masalahnya adalah, saya telah meletakkan kode perpustakaan complie yang tidak perlu di build.gradle
dependencies { compile 'com.google.android.gms:play-services:7.5.0' }
yang menyebabkan lebih dari 65 ribu metode, jadi hapus, sinkronisasi gradle, bersihkan proyek, lalu jalankan lagi dan kesalahan ini berhenti. Saya hanya membutuhkan peta dan gcm jadi saya meletakkan garis-garis ini dan proyek yang disinkronkan
compile 'com.google.android.gms:play-services-gcm:7.5.0' compile 'com.google.android.gms:play-services-location:7.5.0'
Hai orang-orang, saya lagi mengalami masalah ini dan kali ini karena mengubah versi alat build dan itu benar-benar mengharuskan saya untuk mengaktifkan multidex .. jadi saya menambahkan ini file build.gradle aplikasi saya ..
defaultConfig { applicationId "com.am.android" minSdkVersion 13 targetSdkVersion 23 // Enabling multidex support. multiDexEnabled true } dexOptions { incremental true javaMaxHeapSize "2048M" jumboMode = true } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:multidex:1.0.1' }
Dan buat kelas yang memperluas kelas Aplikasi dan menyertakan metode ini di dalam kelas ..
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
juga termasuk dalam metode OnCreate juga
@Override public void onCreate() { MultiDex.install(this); super.onCreate(); }
sumber
Untuk berjaga-jaga jika seseorang masih berjuang dengan ini dan tidak tahu mengapa ini terjadi dan bagaimana cara memperbaikinya. Ternyata kesalahan ini
dapat memiliki banyak alasan untuk terjadi tetapi tentu saja bukan sesuatu yang terkait dengan versi JDK Anda jadi jangan buang waktu Anda ke arah yang salah. Ini adalah dua alasan utama terjadinya hal ini
Kasus pertama dapat diperbaiki sebagai berikut: Cari tahu dependensi mana yang telah Anda sertakan beberapa kali. Untuk melakukan ini jalankan perintah berikut di terminal android studio
gradlew -q dependencies yourProjectName_usually_app:dependencies --configuration compile
ini akan mengembalikan semua dependensi tetapi file jar yang Anda sertakan dari folder lib mencoba menghilangkan duplikasi yang ditandai dengan asterisk (*), ini tidak selalu memungkinkan tetapi dalam beberapa kasus Anda masih dapat melakukannya, setelah ini coba untuk mengecualikan modul yang disertakan berkali-kali, Anda dapat melakukannya seperti ini
compile ('com.facebook.android:facebook-android-sdk:4.0.1'){ exclude module: 'support-v4' }
Untuk kasus kedua saat Anda melebihi saran batas metode adalah mencoba meminimalkannya dengan menghapus pustaka yang disertakan (catatan terdengar seperti solusi pertama) jika tidak ada cara untuk melakukannya, tambahkan multiDexEnabled true ke defaultConfig Anda
defaultConfig { ... ... multiDexEnabled true }
batas metode meningkat ini, tapi itu bukan hal terbaik untuk dilakukan karena kemungkinan masalah kinerja PENTING menambahkan hanya
multiDexEnabled true
untukdefaultConfig
tidak cukup bahkan pada semua perangkat yang menjalankan Android <5 Lollipop itu akan menghasilkan perilaku tak terduga danNoClassDefFoundError
. bagaimana mengatasinya dijelaskan di sinisumber
Saya tidak tahu (saat itu) bahwa "kompilasi fileTree (dir: 'libs', include: ['* .jar'])" mengkompilasi semua yang memiliki ekstensi jar di folder libs, jadi saya hanya mengomentari (atau menghapus) ini garis:
//compile 'com.squareup.retrofit:retrofit:1.9.0' //compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0' //compile 'com.squareup.okhttp:okhttp:2.2.0' //compile files('libs/spotify-web-api-android-master-0.1.0.jar') //compile files('libs/okio-1.3.0.jar')
dan itu bekerja dengan baik. Terima kasih! Salahku.
sumber
compile fileTree(dir: 'libs', include: ['*.jar'])
dalam gradle. Itu telah membantu saya.compile fileTree(dir: 'libs', include: ['*.jar'])
tetapi masih menunjukkan kesalahan yang sama.Saya memiliki masalah yang sama dan saya memperbaiki menghapus perpustakaan yang tidak perlu
compile fileTree(dir: 'libs', include: ['*.jar'])
Saya menghapus perpustakaan itu dan saya dapat menjalankan proyek tanpa masalah.
sumber
Milik saya diselesaikan dengan mengaktifkan multiDex untuk build debug.
defaultConfig { multiDexEnabled true }
sumber
Saya Tolak JDK Tertanam (dalam 32bit) karena JDK yang disematkan adalah 64bit
Klik kanan Proyek Anda -> Buka Pengaturan Modul -> Lokasi SDK -> Hapus centang Gunakan JDk tertanam kemudian atur Jalur JDK Anda, misalnya di Ubuntu / usr / lib / jvm / java-8-openjdk-i386
sumber
echo $JAVA_HOME
untuk jalurKemungkinan masalah: Anda telah melebihi batas metode dex 65k, mungkinkah Anda menambahkan beberapa pustaka atau beberapa metode sebelum masalah terjadi?
sumber
Jika Anda telah memperbarui SDK Anda dan Anda juga menggunakan layanan-google-maka Anda perlu menjaga ketergantungan karena ada beberapa jenis konflik dengan:
Ikuti di bawah ini: kompilasi 'com.google.android.gms: play-services: +' Replace by compile 'com.google.android.gms: play-services: 6.5.87'
Catatan: Di sini '6.5.87' adalah versi layanan google-play. Saya harap ini akan membantu ..
sumber
Saya telah menghapus android-support-v4.jar dari folder libs dan berfungsi !!!
jika proyek Anda memberikan kesalahan, periksa file build.gradle Anda
sumber
Dalam kasus saya, masalahnya adalah bahwa pustaka baru (ketergantungan gradle) yang saya tambahkan mengandalkan beberapa dependensi lain dan dua dari dependensi yang mendasarinya saling bertentangan / bentrok dengan beberapa dependensi library / dependensi lain dalam skrip build saya. Secara khusus, saya menambahkan Apache Commons
Validator
(untuk validasi email), dan dua dependensinya (Apache CommonsLogging
dan Apache CommonsCollections
) berkonflik dengan yang digunakan oleh Robolectric (karena versi berbeda dari pustaka yang sama hadir di jalur build saya). Jadi saya mengecualikan versi dependensi (modules
) yang bertentangan tersebut saat menambahkan dependensi baru (theValidator
):compile ('commons-validator:commons-validator:1.4.1') { exclude module: 'commons-logging' exclude module: 'commons-collections' }
Anda dapat melihat dependensi modul gradle Anda (Anda mungkin hanya memiliki satu modul dalam proyek Anda) menggunakan perintah gradle berikut (saya menggunakan gradle wrapper yang dibuat untuk Anda jika Anda telah membuat proyek di Android Studio / Intellij Ide). Jalankan perintah ini di direktori root proyek Anda:
./gradlew: YOUR-MODULE-NAME: dependensi
Setelah menambahkan
exclude
arahan tersebut dan mencoba kembali untuk menjalankan, saya mendapat pesanduplicate file
kesalahanNOTICE.txt
yang digunakan oleh beberapa perpustakaan apache commons seperti Logging dan Koleksi. Saya harus mengecualikan file teks itu saat mengemas. Di build.gradle saya, saya menambahkan:packagingOptions { exclude 'META-INF/NOTICE' exclude 'META-INF/notice.txt' exclude 'META-INF/NOTICE.txt' }
Ternyata pustaka baru (the
Validator
) dapat bekerja dengan versi yang sedikit lebih lama dari dependensi / modulnya (yang sudah diimpor ke jalur build saya oleh pustaka lain (Robolectric)). Ini adalah kasus dengan pustaka khusus ini, tetapi pustaka lain mungkin menggunakan API terbaru dari dependensi yang mendasarinya (dalam hal ini Anda harus mencoba untuk melihat apakah pustaka lain yang bergantung pada modul / ketergantungan yang berkonflik dapat bekerja dengan versi yang lebih baru (dengan mengecualikan versi modul / dependecy yang lebih lama di bawah entri perpustakaan itu)).sumber
Dalam kasus saya, saya mendapat kesalahan ini ketika ada 2 atau lebih perpustakaan konflik (perpustakaan yang sama tetapi versi berbeda). Periksa aplikasi Anda build.gradle di blok dependensi.
sumber
Ada dua alternatif yang pasti berhasil:
Jika metode di atas tidak berhasil, coba yang berikutnya.
Tambahkan baris berikut ke file build.gradle di tingkat aplikasi
defaultConfig { multiDexEnabled true }
sumber
Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: android/support/v4/view/MotionEventCompatEclair.class
, apa yang harus saya lakukan selanjutnya?Memperbarui Java SDK saya ke versi terbaru
1.7.0_79
dan memperbarui yang diSDK Location
bawahProject Structure
memecahkan masalah bagi saya.sumber
Masalah saya adalah selain memiliki
Saya memiliki jejak ini juga:
Masalahnya adalah saya menambahkan kelas yang sama di dua perpustakaan yang berbeda. Dengan menghapus file kelas / jar dari salah satu perpustakaan, proyek akan berjalan dengan baik
sumber
Bagi saya, saya menambahkan seluruh dependensi playstore
Tetapi saya hanya membutuhkan peta google, jadi saya membuatnya lebih spesifik dan kesalahan telah teratasi.
sumber
dalam kasus saya masalah adalah membangun versi alat yang 23.0.0 rc3 dan saya berubah menjadi 22.0.1 dan masalah saya diperbaiki.
sumber
Anda mungkin menggunakan kabel berkualitas rendah / kabel cacat untuk menghubungkan perangkat Anda ke PC, saya mengganti kabel dan itu berfungsi untuk saya.
sumber
Kesalahan ini karena menggunakan lebih banyak jumlah perpustakaan. Dalam kasus saya 'kompilasi' com.google.android.gms: play-services-9.4.0 'menyebabkan kesalahan ini.Untuk menghindari kesalahan ini gunakan perpustakaan yang diperlukan. Misalnya jika Anda ingin untuk menggunakan Maps di aplikasi Anda. Kemudian gunakan compile 'com.google.android.gms: play-services-maps: 9.4.0'. sementara menambahkan ketergantungan layanan google play, tentukan library yang diperlukan saja. secara default mencakup semua library.
sumber
Di
gradle.build
file Anda , Gunakan ini"compile fileTree(dir: 'libs', include: ['*.jar'])"
Dan itu bekerja dengan baik.
sumber
Jika Anda ingin melihat apa yang sebenarnya menyebabkan kesalahan, coba buat proyek Anda melalui terminal gradle, seperti ini
./gradlew assembleDebug --stacktrace --debug
. Saya telah melihat kesalahan berikut dalam kasus sayacom.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Ini terjadi ketika saya mencoba memasukkan Google Maps ke proyek saya. Untuk memperbaikinya, saya cukup memeriksa perpustakaan yang saya sertakan
compile 'com.google.android.gms:play-services:9.8.0'
Saya hanya mengubahnya menjadi
compile 'com.google.android.gms:play-services-maps:9.8.0'
dan masalah hilang
sumber
Saya mengalami kesalahan yang sama setelah mengonversi proyek saya ke
Kotlin
. Masalah saya adalah lokasi jre saya diubah ke jalur yang tidak valid selama proses (saya bertanya-tanya mengapa ini bisa terjadi ... membuat saya membuang waktu). Perbaiki dengan melakukan ini:File > Project Structure > SDK Location
Hapus centang
Use embedded JDK
opsi, yang mengarah ke instalasi JDK lama, dan pilih yang benar:Setelah mengubah ini, kesalahan tersebut menghilang
sumber
BEKERJA UNTUK SAYA :)
saya mengupgrade java ke versi 8 terbaru sebelumnya 7 dan kemudian pergi ke OPEN MODULE SETTING klik kanan pada proyek dan mengubah jalur jdk ke / usr / lib / jvm / java-8-oracle , java 8 baru diinstal. Dan mulai ulang studio
periksa di / usr / lib / jvm untuk nama folder java 8
Saya menggunakan ubuntu
sumber