Saya memiliki Android Studio Beta. Saya membuat proyek baru dengan mengkompilasi modul lama saya tetapi ketika saya mencoba meluncurkan aplikasi itu tidak memulai dengan pesan:
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.android.builder.dexing.DexArchiveMergerException: Tidak dapat menggabungkan dex
Tapi saya tidak tahu bagaimana cara mengatasi kesalahan ini. Saya mencari Google selama berjam-jam tetapi tidak berhasil.
Gradle proyek saya:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-beta6'
classpath "io.realm:realm-gradle-plugin:3.7.1"
classpath 'com.google.gms:google-services:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Gradle aplikasi saya:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "parad0x.sk.onlyforyou"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
}
}
compileOptions {
targetCompatibility 1.7
sourceCompatibility 1.7
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
lintOptions {
checkReleaseBuilds false
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
//noinspection GradleCompatible
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile project(path: ':loginregisterview')
}
Dan gradel modul saya:
apply plugin: 'com.android.library'
apply plugin: 'realm-android'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 19
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(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.0.2'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.github.bumptech.glide:glide:4.0.0'
testCompile 'junit:junit:4.12'
compile project(path: ':parser')
}
Modul kedua saya:
apply plugin: 'com.android.library'
apply plugin: 'realm-android'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
realm {
syncEnabled = true
}
useLibrary 'org.apache.http.legacy'
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile 'junit:junit:4.12'
// compile 'com.android.support:appcompat-v7:23.1.0'
// compile 'com.fasterxml.jackson.core:jackson-core:2.9.0'
// compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.0'
// compile 'com.fasterxml.jackson.core:jackson-databind:2.9.0'
compile 'com.google.code.gson:gson:2.6.2'
}
____________temuan_________
Ketika saya tidak mengimpor modul kedua (parser) aplikasi tidak crash pada dex tetapi ketika modul itu tidak diimpor aplikasi tidak berfungsi. :DD
android
dex
android-studio-3.0
Parad0X
sumber
sumber
Jawaban:
Saya memiliki masalah yang sama ketika saya memperbarui dari
com.google.android.gms:play-services:11.2.2
kecom.google.android.gms:play-services:11.4.0
. Ini menyelesaikannya untuk saya:sumber
multiDexEnabled true
saja tidakSaya mencoba semua hal di atas dan tidak ada yang membantu. akhirnya, saya menemukan pekerjaan ini untuk saya:
app / build.gradle:
sumber
Perhatikan Peringatan!
Terkadang Anda hanya perlu menghilangkan peringatan dan kesalahan akan otomatis hilang. Lihat di bawah kasus khusus:
Saya memiliki dua dependensi ini di
build.gradle
file level modul saya :dan Studio telah memperingatkan ( selain masalah penggabungan dex ):
Jadi saya secara eksplisit menentukan versi
com.android.support:support-v4
(lihat di sini untuk detail) dan kedua masalah (peringatan dan yang terkait dengan dex merger) diselesaikan :Lihat komentar di bawah ini untuk situasi serupa lainnya.
sumber
support:design:26.1.0
, dan saya belum memiliki ketergantungan itu. Versi pustaka pendukung saya yang lain adalah 27.1.0. Setelah menambahkansupport:design
ketergantungan dengan27.1.0
versi, masalah saya telah diatasi.Dalam kasus saya, Sayangnya, baik solusi Michel maupun Suragch tidak bekerja untuk saya.
Jadi saya memecahkan masalah ini dengan melakukan hal berikut:
Dalam Gradle: 3.0 tersebut kompilasi konfigurasi sekarang usang dan harus diganti dengan implementasi atau api . Untuk informasi lebih lanjut, Anda dapat membaca di sini. Anda dapat membaca dokumen resmi di Gradle Build Tool
lebih baik menggunakan implementasi atau api daripada kompilasi
ganti saja kompilasi dengan implementasi , debugCompile dengan debugImplementation , testCompile dengan testImplementation dan androidtestcompile dengan androidTestImplementation
Misalnya: Alih-alih ini
gunakan seperti ini
Setelah itu
Semoga ini bisa membantu!
sumber
.gradle
dan tidak./gradle
Hapus
.gradle
direktori.Jalankan lagi aplikasi Anda.
Catatan
.gradle
direktori di root folder proyek Anda. (Anda mungkin harus menampilkan file tersembunyi terlebih dahulu.)sumber
Menghapus
.gradle
seperti yang disarankan Suragch tidak cukup untukku. Selain itu, saya harus melakukanBuild > Clean Project
.Perhatikan bahwa, untuk dapat melihat
.gradle
, Anda perlu beralih ke tampilan "Project" di navigator di kiri atas:sumber
Saya mencoba setiap solusi lain, tetapi tidak ada yang bekerja untuk saya. Pada akhirnya, saya menyelesaikannya dengan menggunakan versi ketergantungan yang sama dengan mengedit
build.gradle
. Saya pikir masalah ini terjadi ketika menambahkan perpustakaan ke dalam gradle yang menggunakan versi ketergantungan yang berbeda dari dukungan atau perpustakaan google.Tambahkan kode berikut ke file build gradle Anda. Kemudian
clean
danrebuild
proyekkan.sumber
jika (1. Cobalah untuk membersihkan dan membangun kembali pekerjaan) maka bagus
lain jika (2. Cobalah untuk menghapus pekerjaan gradle) maka bagus
else-> 3. Cobalah untuk menambahkan grade.properties
else-> 4. Tambahkan
multiDexEnabled
true ke build.gradle Andadan tambahkan ketergantungan
Mungkin yang pertama berfungsi untuk Anda dan seterusnya tetapi itu benar-benar tergantung pada sifat masalah Anda untuk saya misalnya
Saya mendapatkan kesalahan setelah menambahkan perpustakaan ini
dan kemudian saya menemukan bahwa saya harus memeriksa itu dan saya harus menambahkan versi yang sama dari perpustakaan dukungan. Jadi saya harus mencoba versi lain
dan itu memperbaiki masalah. Jadi perhatikan hal itu.
sumber
Dalam masalah kasus saya adalah karena perpustakaan kamar:
Mengubahnya menjadi:
bekerja.
sumber
Hanya untuk menambah solusi di atas:
Pastikan Anda tidak memiliki dependensi duplikat yang menunjuk ke versi yang berbeda, di banyak tempat (atau bahkan di file yang sama).
sumber
Hai saya punya masalah yang sama mencoba hampir semuanya. Jadi, akhirnya saya menyelesaikan setelah 6 jam perjuangan panjang dengan men-debug semuanya baris demi baris.
Google-services 3.0 Tidak mendukung firebase dengan Studio 3.0 dengan playServiceVersion: 11.6.0 atau kurang.
Solusi:
Saya telah mengubah layanan google menjadi
Dan itu mendukung layanan firebase.
Semoga seseorang menghemat waktunya.
sumber
Memungkinkan
defaultConfig {multiDexEnabled true}
Jika langkah 1 tidak berhasil, maka
Buka struktur proyek dan temukan pustaka eksternal yang menggunakan versi yang berbeda. Klik dua kali padanya dan hapus file jarnya. Tutup proyek dan buka lagi studio android yang akan membangun kembali proyek. Masalahnya harus hilang.
sumber
Salah satu kemungkinan adalah: keberadaan perpustakaan yang sama tetapi dengan versi yang berbeda dalam dependensi .
Saya punya masalah dengan baris berikut dalam file gradle:
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.code.gson:gson:2.8.2'
Perpustakaan gson berada di direktori libs saya tetapi dengan versi sebelumnya. Saya menghapusnya
gson-2.3.1.jar
dari direktori libs dan semuanya kembali normal.sumber
compile fileTree(include: ['*.jar'], dir: 'libs')
diperbaiki untuk saya juga .. terima kasih (y)Jika kesalahan ini muncul untuk Anda setelah menyertakan dukungan kotlin, dan tidak ada solusi lain yang berfungsi, coba ubah ketergantungan kotlin pada modul aplikasi
build.gradle
menjadi:Ini berfungsi untuk saya di Android Studio 3.0 Beta 6. Lihat jawaban ini untuk penjelasan lebih lanjut.
sumber
Dengan build stabil Android Studio 3.0 Langkah-langkah di bawah ini berfungsi untuk saya:
sumber
[TIDAK DAPAT MENYELESAIKAN DEX ASK] Setelah berjam-jam tumpukan meluap saya memutuskan "TIDAK Mampu GABUNG DEX ERROR"
Penyebab - Android telah memperbaruinya mendukung perpustakaan ke v27.1.0, jadi Anda harus mengubah semua jalur dukungan android di file gradle Anda menjadi 27.1.0 dari 26.1.0
Pastikan bahwa bagian repositori termasuk bagian pakar dengan " https://maven.google.com titik akhir " ". Sebagai contoh:
allprojects {repositories {jcenter () maven {url " https://maven.google.com "}}}
Penyebab: - Android tidak dapat memperbarui perpustakaan dukungan di manajer SDK dan sekarang menggunakan maven.google.com untuk memperbarui, jadi Anda harus memasukkan ini untuk menggunakan perpustakaan dukungan 27.1.0
Setelah Perubahan Versi: 1. Clean Project 2. Rebuild Project
sumber
tambahkan perintah di bawah ini:
sumber
Menginstal layanan Google play (versi terbaru) + termasuk
di build.gradle memecahkan masalah bagi saya, pastikan untuk membersihkan dan membangun kembali proyek!
sumber
Dalam kasus saya itu gson-2.8.1.jar yang telah saya tambahkan ke folder libs proyek. Tapi referensi sudah ada di sana oleh SDK. Jadi tidak perlu menambahkan gson-2.8.1.jar ke folder libs.
Ketika saya mengeluarkannya gson-2.8.1.jar proyek mengkompilasi tanpa kesalahan wiered ini.
Jadi cobalah untuk merevisi folder libs dan dependensi .
sumber
Saya setuju dengan Chris-Jr. Jika Anda menggunakan Firebase untuk menyematkan iklan AdMob Anda (atau bahkan jika Anda tidak), play-services-analytics menyertakan iklan play-service-meskipun Anda tidak menambahkannya sebagai ketergantungan. Google jelas telah membuat kesalahan dalam peluncuran 11.4.0 mereka karena analitik termasuk versi 10.0.1 dari iklan, bukan 11.4.0 (petunjuk mouse di gradle menunjukkan ini).
Saya secara manual menambahkan kompilasi 'com.google.android.gms: play-services-ads: 11.4.0' di bagian atas yang berfungsi, tetapi hanya setelah saya menonaktifkan Instant Run: http://stackoverflow.com/a/35169716/530047
Jadi itu mundur ke 10.0.1 atau menambahkan iklan dan menonaktifkan Instant Run. Itulah yang saya temukan jika itu membantu.
sumber
Saya mengalami masalah yang sama dan menemukan alasan sebenarnya untuk kasus saya. Sebelumnya, saya juga mencoba semua jawaban sebelumnya lagi, tetapi tidak menyelesaikan masalah. Saya memiliki dua modul dalam proyek aplikasi pakaianku, dan build.gradle sebagai berikut:
build.gradle modul pakai:
build.gradle modul umum:
Sebelum meningkatkan ke gradle 3.x, 'implementasi' semuanya 'kompilasi'.
Saya menjalankan gradlew dengan opsi --stacktrace untuk mendapatkan jejak stack, Anda bisa mengklik ini pada jendela konsol gradle ketika masalah ini muncul. Dan menemukan bahwa ketergantungan pada paket toples berulang:
Ringkasan Kelas Sport di paket Farmer-Motion-1.0.jar, setelah membaca panduan migrasi resmi , saya mengubah build.gradle saya menjadi sebagai berikut:
build.gradle modul pakai:
modul umum 的 build.gradle:
Sekarang modul pakai akan memiliki ketergantungan petani-gerak-1.0.jar ekspor dengan modul umum. Jika tidak ada ketergantungan pada paket jar selama runtime , dependensi ' implementasi ' paket jar juga bisa diubah menjadi 'compileOnly' .
sumber
Saya juga punya masalah.
Saya dapat menyelesaikannya dengan mengubah
compileSdkVersion
dantargetSdkVersion
ke versi terbaru.sumber
Untuk proyek kami, kami tidak sengaja menambahkan stoples yang sama dua kali dengan nama yang berbeda. Menghapus salah satu dari mereka memecahkan masalah.
sumber
libs
foldernya, saya punya dua file jar, salah satunya hanya cadangan dari yang lain tetapi dengan nama file yang berbeda.Ini mungkin bukan masalah Anda, tetapi saya mendapatkan kesalahan ini ketika saya secara tidak sengaja memasukkan dua pustaka yang identik (tetapi berbeda namanya) di bagian dependensi {} proyek.
sumber
Bagi saya itu memperbarui perpesanan firebase di app \ build.gradle:
untuk
sumber
Salah satu penyebab root yang mungkin: duplikat dependensi sementara yang tidak ditangani dengan benar oleh Android Studio mengimpor proyek multi-modul. Periksa daftar Anda dan hapus. Bagi saya, perbaikannya adalah ini:
sumber
Saya mencari tahu alasan masalah ini untuk proyek saya. Saya menambahkan satu ketergantungan dua kali di build.gradle . Satu kali dengan menambahkan ketergantungan dan satu kali lagi dengan menambahkan ketergantungan jar:
kompilasi 'org.achartengine: achartengine: 1.2.0'
...
file implementasi ('../ achartengine-1.2.0.jar')
setelah menghapus masalah baris pertama diselesaikan.
sumber
Jika jawaban teratas tidak berhasil untuk Anda, masalah Anda mungkin adalah Anda memiliki banyak dependensi yang bergantung pada pustaka yang sama.
Berikut ini beberapa kiat debug. Dalam kode contoh ini,
com.google.code.findbugs:jsr305:3.0.0
adalah perpustakaan yang menyinggung.Selalu bersih dan bangun kembali setiap kali Anda memodifikasi untuk memeriksa solusi Anda!
Bangun dengan
--stacktrace
bendera untuk lebih detail. Ini akan mengeluh tentang kelas, Google kelas yang menemukan perpustakaan. Inilah cara Anda dapat mengatur studio Android untuk selalu menjalankan gradle dengan--stacktrace
flag .Lihatlah Gradle Console di Android Studio
View > Tool Windows > Gradle Console
setelah dibuatPeriksa ketergantungan berulang dengan menjalankan
./gradlew -q app:dependencies
. Anda dapat menjalankannya kembali setiap kali Anda memodifikasi build.gradle Anda.Di build.gradle,
Di build.gradle,
Di build.gradle,
Jika beberapa dependensi Anda ada dalam file jar, buka file jar dan lihat apakah ada nama kelas yang saling bertentangan. Jika ya, Anda mungkin harus membangun ulang toples dengan nama kelas baru atau melihat ke dalam naungan .
Beberapa bacaan latar belakang:
sumber
sumber
Dalam kasus saya perpustakaan membuat masalah ini, perpustakaan berhasil ditambahkan ke proyek tetapi ketika saya menjalankan aplikasi saya itu menunjukkan kesalahan ini kepada saya. Jadi jika ini terjadi pada Anda juga, Anda dapat pergi ke github dan memeriksa masalah atau mengangkat masalah baru. Jika Anda tidak menemukan solusi apa pun tentang perpustakaan saya sarankan Anda untuk menggantinya.
sumber