Android Studio 3.0 Yürütme, görev için başarısız oldu: dex birleştirilemiyor


87

android studio, aşağıdakilerle yürütme oluştururken derleme hatası alıyordu:

Hata: ': app: transformDexArchiveWithExternalLibsDexMergerForDebug' görevi için yürütme başarısız oldu. java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: dex birleştirilemiyor "

Uygulamam: build.gradle dosyası:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.pdroid.foodieschoice"
        minSdkVersion 16
        targetSdkVersion 25
        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.constraint:constraint-layout:1.0.2'
    compile 'com.firebaseui:firebase-ui-auth:2.3.0'

    testCompile 'junit:junit:4.12'
}
configurations.all {
    resolutionStrategy {
        force 'com.android.support:appcompat-v7:26.0.1'
        force 'com.android.support:support-compat:26.0.1'
        force 'com.android.support:support-core-ui:26.0.1'
        force 'com.android.support:support-annotations:26.0.1'
        force 'com.android.support:recyclerview-v7:26.0.1'
    }
}

apply plugin: 'com.google.gms.google-services'

herhangi bir çözüm

Düzenleme: Firebase github sitesi aracılığıyla örnekle yaptım ve çözdüm


uygulamanıza multiDex desteğini
eklemelisiniz

ve projenizi temizlemeyi, yeniden oluşturmayı deneyin
Sudheesh R

Sorunuzu düzenlemenizi ve sadece bir satırı değil Gradle konsolunuzun tüm çıktısını göndermenizi öneririm. Sorununuzun ayrıntıları çıktının başka yerlerinde yatmaktadır.
CommonsWare

@CommonsWare Tüm hatamı gönderdim .. sadece iki satır.
Anguraj

2
Anında çalıştırmayı devre dışı bırakmayı deneyin, projenizi temizleyin ve android {defaultConfig {multiDexEnabled true}} ekleyin
Tara

Yanıtlar:


66

Cordova tabanlı proje için, @mkimmet'in önerdiği cordova clean androidgibi yeniden oluşturmadan önce çalıştırın .


1
Birisi lütfen bu yanıtı doğru işaretleyin. Sorunu çözer.
pamekar

2
Benim için yükleme 'cordova-eklentisi-androidx' ve '-eklenti-androidx adaptörü cordova' sorunu sovled
ssz

58

Bu hata, siteniz ile uyumlu olmayabilecek bir harici kitaplık eklediğinizde ortaya çıkar compileSdkVersion.

Eklerken dikkatli olun external library.

Bu sorun için 2 gün geçirdim ve sonunda bu adımları izleyerek çözüldü.

  • Mutlaka tüm destek kütüphaneleri aynıdır olun compileSdkVersionsenin içinde build.gradle(Module:app)benim durumumda öyle 26.görüntü açıklamasını buraya girin

  • DefaultConfig kategorinizde multiDexEnabled true yazın . Bu önemli kısım.multiDexEnabled True image

  • Dosyaya Git | Ayarlar | Derleme, Yürütme, Dağıtım | Anında Çalıştır ve tıklama sıcak takas / devre dışı bırak Anlık Çalıştır etkinleştirme deneyin ... ve tamam Hot swap için Anında Çalıştırmayı Etkinleştir ...

  • Sync Senin projen.

  • Son olarak, Go Build'a | Rebuild Project'e tıklayın .

  • Not: Rebuild Project, önce temizler ve ardından projeyi oluşturur.


bana yardımcı oldu, teşekkür ederim.
Sumit Saxena

bunu duyduğuma sevindim. Mutlu Androidler.
Niamatullah Bakhshi

1
@YajliMaclo harika!
Niamatullah Bakhshi

48

Bunu gradle'a eklemeyi dene

    android {
      defaultConfig {
        multiDexEnabled true
        }
   }

Android stüdyosunda önbelleği geçersiz kılmaya mı çalıştınız? @Anguraj
Ishan Fernando

Multidex'i etkinleştirmenin tek adımı değil. Yeni API seviyelerinde de gerekli değildir
OneCricketeer

25

Çözüm:

Şu bağlantıya bakın : minSdkVersion'a bağlı olarak uyarıyı kapatmak için çeşitli seçenekler olduğundan, 20'nin altına ayarlanmıştır :

 android {
     defaultConfig {
         ...
         minSdkVersion 15 
         targetSdkVersion 26
         multiDexEnabled true
     }
     ... }

 dependencies {   compile 'com.android.support:multidex:1.0.3' }

Build.gradle kümenizde 20'den büyük bir minSdkVersion varsa , uyarıyı kapatmak için aşağıdakileri kullanın:

  android {
      defaultConfig {
          ...
          minSdkVersion 21 
          targetSdkVersion 26
          multiDexEnabled true
      }
      ... }

Bağımlılıkları aşağıdaki gibi güncelleyin:

     dependencies {
        implementation 'com.android.support:multidex:1.0.3'
     }

Yine tek fark, bağımlılıklardaki anahtar kelimelerdir:

20'nin altındaki minSdkVersion: derlemeyi kullan

20'nin üzerindeki minSdkVersion: uygulama kullanın

  1. Umarım bu yardımcı olmuştur, lütfen sorununuzu çözdüyse ek oy verin, Zaman ayırdığınız için teşekkür ederiz.
  2. Ayrıca daha fazla bilgi için, üzerinde neden bu gerçekleşir , bağlantıdaki ilk paragrafı okuyunuz, o iyice açıklamak niçin olacak? ve bu uyarı ne anlama geliyor?

24

Sadece bir "Oluştur -> Temiz Proje" yapmayı deneyin. Bu benim için sorunu çözdü.


5
Çalıştırarak bu bir İon / Cordova projesinde benim için çalıştı teşekkürler cordova temiz android Ayrıca cordova-android-destek-gradle-salınımını yüklü eklenti varken.
mkimmet

Basit bir şey işleri düzelttiğinde onu sevin! Teşekkürler!
Tonejac

Bu, React Native ile çalışırken benim için sorunu çözdü.
Michael Auderer

Teşekkürler, bu sorun için en kolay çözüm, 3 günümü bu sorunu çözmek için harcadım ve cevabınız tüm sorunlarımı çözdü. Bir kez daha teşekkür ederim kardeşim !!!
gautamsinh mori

Teşekkürler. Android Studio 4.1'de bana yardımcı oldu. Günümü kurtardım.
Atif

7

Benim için ekleyerek

multiDexEnabled true

ve

packagingOptions {
        exclude 'META-INF/NOTICE' 
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/notice'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license'
        exclude 'META-INF/license.txt'
    }

içine uygulama düzeyinde Build.gradle dosya sorunu çözüldü


5

Modül seviyesi build.gradledosyanıza gidin ve aşağıdaki satırları koda ekleyin

    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 28
        multiDexEnabled true
    }
    ...
}

dependencies {
  implementation 'com.android.support:multidex:1.0.3'
}

Bu sorunu kolayca çözdü. Bu belgeleri kontrol edin


4

MultiDexEnabled true değerini aşağıdaki gibi kullanın.

{
 minSdkVersion 17
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}

ve

implementation 'com.android.support:multidex:1.0.3'

bu Çözüm benim için çalıştı.


4

MultiDexEnabled true dahil olmak üzere yukarıda belirtildiği gibi birçok çözümü denedim, ancak bunların hiçbiri benim için işe yaramadı.

İşte benim için çalışan çözüm - bu kodu app \ build.gradle dosyasına kopyalayın

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support' && requested.name != 'multidex') {
            details.useVersion "${rootProject.ext.supportLibVersion}"
        }
    }
}

Kodu çalıştırmadan önce gradlew'i temiz çalıştırdığınızdan emin olun


1
MinSdkVersion'ı değiştirdim, yeter
Bay Özel

2

Aynı şey bana da oldu, AS 3.0.1'e güncellemenin ortasında olduğumu anladım ve güncellemeyi yaptıktan, uygulamayı temizledikten ve yeniden oluşturduktan sonra her şey düzeldi.


2

Benim için bu hatayı düzelten şey, uygulamamın gradle bağımlılıklarında bir satırı değiştirmekti.

bundan :

compile('com.google.android.gms:play-services-gcm:+') {
    force = true
}

Bunun için :

compile('com.google.android.gms:play-services-gcm:11.8.0') {
    force = true
}

Sadece bu benim için çalıştı. Kuvvet eklememe gerek yoktu = true
Paulo Linhares - Packapps

1

Ayrıca uygulamanızın MultiDexApplication alt sınıfına girdiğinden emin olun

import android.support.multidex.MultiDexApplication

class App : MultiDexApplication()

veya Uygulama sınıfının alt sınıfını oluşturmuyorsa, AndroidManifest.xml'ye ekleyin

<application
  android:name="android.support.multidex.MultiDexApplication"

0

SDK veya platform güncellemeleri arasında mısınız? Eğer evet ise, bunları tamamen tamamlayın ve sonra devam etmeye çalışın. Normalde, bazen 2.5 GB'a kadar çıkabilen tüm güncellemeyi alacak şekilde güncellenmesi gereken bireysel paketleri güncellerim. Bu tam güncellemeyi yapmak bazen başarısız olur. Android Studio 3.0'a yükselttikten sonra bir dizi SDK güncellemem vardı ve tüm paketler güncellenmediği için yukarıdaki hatayı alıyordum. Tüm paketleri güncellediğimde yukarıdaki hata gitmişti.


Önbelleğinizi temizlediğinizi veya geçersiz kıldığınızı ve Android Studio'yu yeniden başlattığınızı umarız? Benim için Android Studio 3, önceki sürümlere kıyasla hatalı görünüyor.
Vineet Jain

kimse bunu düzeltti mi? geçemiyorum!
68060

0

Benim durumumda firebase kitaplık sürümünü 2.6.0'dan 2.4.2'ye değiştirmek sorunu çözdü


0

Benim için sorun Java 1.8'in bir modülde kullanılmasıydı, ancak uygulama modülünde değildi. Bunu uygulama derleme sınıfına ekledim ve çalıştım:

android{
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

0

Aynı sorun. Multidex'i etkinleştirdim: defaultConfig {applicationId "xxx.xxx.xxxx" minSdkVersion 24 targetSdkVersion 26 multiDexEnabled true

Önbelleği temizledim, kademeli temiz çalıştırdım, yeniden oluşturdum, yaptım, içe aktarılan kitaplıklarda çakışma olmadığından emin olmaya çalıştım (Tüm geçişli bağımlılıkları kaldırdım) ve tüm güncellemeleri yaptım. Yine de:

Hata: ': app: transformDexArchiveWithExternalLibsDexMergerForDebug' görevi için yürütme başarısız oldu. java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: dex birleştirilemiyor

Yapının beğenmediği ortaya çıktı: uygulama 'org.slf4j: slf4j-android: 1.7.21'


0

Android Studio'nun sürümü 3.0.1, Gradle Sürümü 4.1 ve Android PluginVersion 3.0.0 olduğunda bu sorunla karşılaşacaktır. Sonra Gradle Sürümünü düşürüyorum 3.3, Android Android sıfır, böyle bir sorun yok.


0

İstenilen SDK sürümü bağımlılıklarla eşleşmediğinde buna sahiptim. Vurgulanan çizgiye tıklayıp bunu kırmızı ampulü tıklayarak düzeltebilirsiniz. Gerçek sürümü bulmaya gerek yok, bırakın IDE sizin için bulsun. Ve maven yapılandırmasına google repo ekleyin.


0

Aynı hatayı alıyordum ve benim durumumda, şu anda oluşturduğumdan farklı bir yapı varyantıyla ilişkili bir yapı hatasını düzelttiğimde hata çözüldü.

Baktığım yapı varyantını hiçbir hata olmadan iyi bir şekilde oluşturuyordum, ancak hata ayıklamaya çalışmak bir app:transformDexArchiveWithExternalLibsDexMergerForDebughataya neden oldu . Diğer yapı varyantını oluşturmaya geçtikten sonra, oluşturma sürecinde hatamı yakaladım ve düzelttim. Bu app:transformDexArchiveWithExternalLibsDexMergerForDebug, tüm derleme varyantları için sorunumu çözmüş görünüyordu .

Bu hatanın başvurulan harici modül içinde olmadığını , ancak harici bir modüle başvuran bir yapı varyantının farklı bir kaynak kümesi içinde olduğunu unutmayın. Umarım bu benimle aynı vakayı gören biri için yararlıdır!


0

Yaptım ve bu sorunu sadece kodumda bu işleri yaparak düzelttim

Aç -> build.gradle Değeri değiştir

compile 'com.google.code.gson:gson:2.6.1'

-e

compile 'com.google.code.gson:gson:2.8.2'

0

Bu Dex sorununu kaldırmak için yalnızca bir bağımlılık uygulayın. Bu sorun, aynı sunucudan birden fazla farklı hizmet kullandığımızda ortaya çıkar. Bir projede reklamları ve Firestore'u kullandığımızı ve her ikisinin de bir havuz yöneticisi olduğunu varsayalım. bu nedenle depodaki farklı verileri çağırmamız gerekiyor, uygulamak için dex bağımlılığına ihtiyacımız var. Yeni güncelleme Bağımlılığı: -

 implementation 'com.android.support:multidex:1.0.3'

Eminim sorununuzu kalıcı olarak çözecektir


Bu bir bağımlılık onu
gradle'a

0
1) Lütfen multiDexEnabled true ekleyin
2) derleme hatası alırsanız, uygulama düzeyinde build.gradle hava durumunuzu kontrol edin, aynı bağımlılıklar farklı sürümlerle uygulanır.
3) Aynı bağımlılıkları bulursanız birini kaldırın.

android {compileSdkVersion 28 defaultConfig {

    minSdkVersion 17
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}
umarım iyi çalışır :) Mutlu Kodlama

0

Bir tür hatayı önlemenin en kolay yolu şudur:

-Kitaplık combilesdkversion'ı uygulama derlemenizle aynı şekilde değiştirindkversion

-Kitaplığın supportLibrary sürümünü build.gradle (uygulamanız) ile aynı şekilde değiştirin


0

İşte benim işime yarayan bu. temiz hazırlanın ve çalıştırın.

cordova clean android;
ionic cordova prepare andriod;
ionic cordova run andriod;

Umarım yardımcı olur.



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.