Ketika saya membangun aplikasi saya, saya mendapatkan kesalahan berikut:
Kesalahan: Eksekusi gagal untuk tugas ': app: transformResourcesWithMergeJavaResForDebug'. Lebih dari satu file ditemukan dengan jalur independen OS 'META-INF / LICENSE'
Ini adalah file build.gradle saya:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "cn.sz.cyrus.kotlintest"
minSdkVersion 14
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
javaCompileOptions{
annotationProcessorOptions{
includeCompileClasspath = true
}
}
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
/* exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'*/
}
}
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'
})
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
compile 'com.github.GrenderG:Toasty:1.2.5'
compile 'com.orhanobut:logger:1.15'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.umeng.analytics:analytics:latest.integration'
compile 'ai.api:libai:1.4.8'
compile 'ai.api:sdk:2.0.5@aar'
// api.ai SDK dependencies
compile 'com.google.code.gson:gson:2.8.0'
compile 'commons-io:commons-io:2.4'
compile 'com.android.support:multidex:1.0.1'
}
Ketika saya menambahkan kode ini ke file build.gradle saya,
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
Kesalahan ini akan diselesaikan, tetapi masalah lain akan terjadi. Seperti ini:
java.lang.NoClassDefFoundError: com.squareup.leakcanary.internal.HeapAnalyzerService
at com.squareup.leakcanary.LeakCanary.isInAnalyzerProcess(LeakCanary.java:145)
at cn.sz.cyrus.wemz.TestApplication.onCreate(TestApplication.kt:32)
Siapa yang punya ide bagaimana menyelesaikan ini?
android
gradle
build.gradle
Cyrus
sumber
sumber
Jawaban:
Anda dapat menambahkan ini di
yourProject/app/build.gradle
dalamandroid{}
sumber
Dalam kasus saya, cukup dengan mengecualikan hanya jalur 'META-INF / DEPENDENCIES' di
yourProject/app/build.gradle
dalamandroid{}
. Ini diaDan kemudian lakukan Clean Project dan Rebuild Project.
sumber
Solusi di sini tidak membantu saya, tetapi tautan ini berhasil.
Jika Anda memiliki pustaka yang menambahkan beberapa file .so android - seperti
libassmidi.so
ataulibgnustl_shared.so
- Anda harus memberi tahu gradle untuk memilih satu saja saat dikemas, jika tidak, Anda akan mendapatkan konflik.Saya mengalami masalah ini ketika menggunakan aplikasi Bereaksi Asli sebagai perpustakaan di proyek Android. Semoga ini bisa membantu
sumber
Punya pesan serupa
Untuk mengatasinya, saya harus mengaktifkan tampilan paket ( 1 ) di Android Studio, lalu menelusuri pohon ke perpustakaan, dan menemukan duplikat ( 2 )
Kemudian, ctrl + alt + f12 (atau menu RMB) ( 3 ) - dan menemukan perpustakaan yang menyebabkan masalah. Membuat daftar file di dalam libs yang menyebabkan masalah, dan menulisnya ke file build.gradle aplikasi di dalam bagian android . Pilihan lain adalah berurusan dengan perpustakaan, yang berisi file duplikat
sumber
Pada dasarnya ketika gradle menyatukan file apk, itu menyalin konten dari semua dependensi kompilasi, Cukup cerdas untuk melihat bahwa ada file duplikat. Berasal dari dua file jar yang berbeda. Ini bisa berupa file apa saja seperti a.txt atau META-INF / DEPENDENCIES. Mungkin lebih baik untuk mengecualikan file-file ini menggunakan di bawah ini, jika file tersebut ada di sana hanya untuk tujuan informasi.
Atau jika dalam kasus, file tersebut adalah file wajib seperti file kelas, yang telah diduplikasi di dua dependensi jar yang terkait satu sama lain, yang terbaik adalah menemukan alternatif untuk guci ini, dengan cara versi yang lebih kompatibel.
sumber
Saya mengalami masalah yang sama dan saya mencoba ini
Solusi: Yang harus Anda lakukan untuk memperbaikinya adalah menambahkan ini ke bagian {} android di 'build.gradle' aplikasi Anda
sumber
Ini terjadi saat menggunakan
org.jetbrains.kotlinx: kotlinx-coroutines-core: 1.2.0
Dan diperbaiki di versi berikutnya
org.jetbrains.kotlinx: kotlinx-coroutines-core: 1.2.1
sumber
Saya telah mengalami kesalahan yang sama, dan saya menemukan bahwa itu dihasilkan dari berbagai modul berisi kelas yang sama dari paket yang berbeda .
mis. Satu paket Androidx digunakan, dan yang lain digunakan pra-Androidx
Saya menyelesaikannya dengan memigrasi modul pra-androidx ke androidx menggunakan fitur bawaan Android Studio: "Refactor -> Migrate to Androidx ..." tanpa mengecualikan apa pun.
Untuk situasi Anda, Anda dapat memeriksa apakah Anda memiliki ketidakcocokan ketergantungan antara modul.
sumber
Saya telah membaca semua jawaban terkait dengan mendapatkan pesan ini di
Android Studio
:tetapi dalam kasus ini tidak termasuk kelas tidak perlu, kita hanya perlu mengecualikan
'META-INF/DEPENDENCIES'
, ini dapat dilakukan di dalam/app/build.gradle
:sumber
Saya memperbarui Studio dari Java 7 ke Java 8, dan masalah ini terjadi. Lalu saya memecahkannya dengan cara ini:
sumber
Saya aplikasi saya, saya menambahkan dependensi jar seperti ini:
Tapi saya menyadari bahwa mereka sudah ditambahkan karena baris pertama berikut dalam dependensi:
Baris ini menambahkan semua stoples di folder lib ke ketergantungan aplikasi.
Karenanya setelah menghapus ketergantungan ekstra
implementation files('libs/json-simple-1.1.1.jar')
itu bekerja dengan baik.
sumber
Saya telah menghadapi masalah serupa yang bekerja di lingkungan aplikasi beberapa modul:
Masalah ini dilaporkan oleh beberapa modul saya dan tidak ada solusi di atas yang memperbaikinya. Ternyata, saya menggunakan versi Coroutines 1.3.6 yang tampaknya menanamkan META-INF / AL2.0 yang sudah tertanam oleh perpustakaan lain yang saya gunakan. Untuk memperbaikinya, saya telah menambahkan potongan kode berikut ke build.gradle dari modul yang gagal:
Mengingat hal itu terjadi pada beberapa modul, saya telah memindahkan
resolutionStrategy
kode itu ke build.gradle tingkat proyek saya. Segalanya berhasil setelah itu.sumber
Saya mengalami masalah yang sama dan saya mencoba ini
Kesalahan: Lebih dari satu file ditemukan dengan jalur independen OS 'META-INF / library_release.kotlin_module'
Larutan:
sumber
Saya punya masalah serupa. saya menerima pesan kesalahan -
Seperti yang dinyatakan dalam beberapa jawaban di atas, menggunakan kode di bawah ini berfungsi
Tetapi saya mendapatkan kesalahan ini untuk 20 file yang berbeda, jadi setelah mengecualikan 20 file, saya berhenti dan mencoba mencari solusi yang layak. Saya juga menemui
Saya akhirnya berhasil menyelesaikan ini.
Pertama (seperti dalam kasus saya WillCloseWhenClosed.java adalah file duplikat), di studio android Anda memiliki pilihan untuk 'mencari di mana-mana'. Tulis dan cari file di sana. Di sana saya menemukan beberapa contoh file ini. Jadi saya mengklik kedua contoh dan melihat lokasi mereka dengan mengklik kanan pada file dan melihat lokasinya ketika dibuka di android studio.
Kedua, saya tahu bahwa saya memiliki beberapa dependensi dalam file gradle. Saya menggunakan kode di bawah ini
dan juga saya punya paket zip yang sama di lokasi: \ Users \ user \ AndroidStudioProjects \ git \ appname \ app \ libs \ google-http-client-1.23 !.
Jadi ini mubazir dan itu sebabnya gradle menemukan 2 file. Jadi saya menghapus paket zip saya dan itu memecahkan kesalahan untuk saya. Hati-hati saat melakukan ini. Anda harus mencari tahu file atau paket mana yang benar untuk dihapus.
Ketiga, gradle juga membuat zip file bug ini di lokasi ini (Setidaknya bagi saya itu membuat) - C: \ Program Files \ Android \ Android Studio \ gradle \ m2pengaturan \ com \ google \ code \ findbugs \ jsr305 \ 1.3. 9 \ jsr305-1.3.9.jar!
jadi saya pergi dan menghapus file jsr305-1.3.9.jar dari sini juga.
Jika Anda masih bingung, buka saja 'cari kemana-mana' di studio android, temukan contoh file Anda di sana dan Anda harus menghapus salah satunya. Luangkan waktu Anda dan cari tahu yang mana.
sumber
Menambahkan
android.useAndroidX = true
android.enableJetifier = true
untuk gradle.properties bekerja untuk saya.
sumber
Saya menghadapi masalah ini, pertama dengan beberapa pustaka asli (file .so) dan kemudian dengan file java / kotlin. Ternyata saya termasuk perpustakaan dari sumber serta referensi artifactory melalui ketergantungan transitif. Periksa pohon dependensi Anda untuk melihat apakah ada entri yang berlebihan. Gunakan
./gradlew :app:dependencies
untuk mendapatkan pohon dependensi. Ganti "aplikasi" dengan nama modul Anda jika nama modul utama berbeda.sumber
Coba ubah versi Android minimum> = 21 di build.gradle android {} Anda
sumber
Tambahkan berikut dalam file tingkat aplikasi di dalam android {}
sumber
Cobalah untuk menghapus multidex dari konfigurasi default dan periksa log kesalahan pembuatan. Jika log itu ada hubungannya dengan kelas INotification. Gunakan ini di android {}
Ini membantu saya.
sumber
Bagi saya di bawah ini solusi berhasil, Anda mungkin mendapatkan bantuan juga, saya menulis di bawah ini di file gradle aplikasi
sumber
Saya menggunakan kabel, tetapi proyek saya sudah dimigrasikan ke AndroidX, tetapi setelah bermigrasi ke AndroidX lagi, proyek ini refactored beberapa bagian dari proyek saya dan masalah diselesaikan.
sumber
Tambahkan kode di bawah ini di app.gradle ini akan menyelesaikan semua kesalahan ketergantungan perpustakaan
sumber
bagi saya, itu .md daripada .txt
sumber
Dalam banyak jawaban pada SO tentang masalah ini disarankan untuk menambahkan
exclude 'META-INF/DEPENDENCIES'
dan beberapa pengecualian lainnya. Namun tidak ada yang bekerja untuk saya. Dalam skenario kasus saya adalah seperti ini:Saya telah menambahkan ini di dependancies:
Dan juga saya telah menambahkan ini di gradle.properties:
Kedua hal ini telah saya tambahkan, karena saya mendapatkan kesalahan build 'tidak dapat menemukan kelas simbol Nullable' dan disarankan sebagai solusi untuk ini pada beberapa jawaban seperti di sini
Namun, akhirnya saya mendapatkan kesalahan:
Tidak ada
exclude
yang berhasil untuk saya. Akhirnya saya hanya menghapus baris-baris yang ditambahkan di atas hanya karena kecurigaan (Dipecahkan 'tidak dapat menemukan kelas simbol Nullable' dalam beberapa cara alternatif) dan akhirnya saya menyingkirkan kesalahan pembuatan "Lebih dari satu file ditemukan dengan OS ...". Saya membuang-buang waktu saya. Tapi akhirnya menyingkirkannya.sumber
Anda hanya perlu memvalidasi Cache & Restart , setelah Proyek Bersih itu
sumber