Oda

2017-11-08 102 views
5

Kullanırken "Dex birleştirilemiyor" projeme "oda" eklemeye çalışıyorum.Oda

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

Zaten ne yaptım:

  1. Temiz/proje ekledim
  2. Yeniden "true multiDexEnabled"

    Ben bir proje oluşturmaya çalıştığınızda

    , bir hata alıyorum defaultConfig {}. Sonra hata alıyorum:

    Error:Execution failed for task ':app:transformClassesWithMultidexlistForDebug'. java.io.IOException: Can't write [C:\Users\user1\AndroidStudioProjects\git\mobile\app\build\intermediates\multi-dex\debug\componentClasses.jar] (Can't read [C:\Users\user1.gradle\caches\transforms-1\files-1.1\support-core-utils-26.1.0.aar\a6c34f6784b0b6bc5c2fc7a7815426da\jars\classes.jar(;;;;;;**.class)] (Duplicate zip entry [classes.jar:android/support/v4/content/PermissionChecker$PermissionResult.class]))

Projemde gelen "oda" kaldırırsanız, hatasız inşa ederiz.

Android Studio 3, platform oluşturma araçları 3.0.0 kullanıyorum.

Bu benim build.gradle geçerli:

apply plugin: 'com.android.application' 
apply plugin: 'me.tatarka.retrolambda' 

buildscript { 
    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath 'me.tatarka:gradle-retrolambda:3.2.5' 
    } 
} 

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 23 
    buildToolsVersion '26.0.2' 

    defaultConfig { 
     applicationId "trsnet.gtp2.com" 
     minSdkVersion 17 
     targetSdkVersion 23 
     multiDexEnabled true 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 
       'proguard-rules.txt' 
     } 
    } 

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_8 
     targetCompatibility JavaVersion.VERSION_1_8 
    } 

} 

dependencies { 

    compile files('libs/commons-codec-1.9.jar') 
    compile files('libs/ksoap2-android-assembly-3.0.0-jar-with- 
    dependencies.jar') 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:cardview-v7:23.2.1' 
    compile 'com.android.support:appcompat-v7:23.2.1' 
    compile 'com.android.support:design:23.2.1' 
    compile 'com.android.support.constraint:constraint-layout:+' 
    compile 'io.reactivex:rxandroid:1.2.1' 
    compile 'io.reactivex:rxjava:1.1.6' 
    compile 'com.jakewharton.rxbinding:rxbinding:0.4.0' 
    implementation 'android.arch.persistence.room:runtime:1.0.0' 
    annotationProcessor 'android.arch.persistence.room:compiler:1.0.0' 
} 
+0

'derleme 1.0.0-alpha 'kullanıyordum, bunu' application 1.0.0 'olarak değiştirdim. – faztp12

cevap

3

Ben de bu sorunu başlamıştı ve onu çözmek için bana oldukça zaman aldı ama sonunda anladım. ROOM, support-v4 kitaplıklarının bir kısmını kullanır; bu nedenle, yinelenen posta girişlerinin olduğu hatayı almanızın nedeni budur. Benim durumumda, ODA ihtiyaç duyduğumdan daha eski bir sürümden bileşenleri kullanıyor.

configurations { 
    all*.exclude group: 'com.android.support', module: 'support-v4' 
} 

Bu da herhangi bir destek-v4 bileşenleri de dahil olmak üzere kütüphaneler engeller olduğunu, ama o zaman var buldum Ne: Yani (found here) benim için çalıştı Gradle dosyasının kök düzeyine aşağıdaki ekliyor hem ODA hem de ihtiyacınız olabilecek başka şeyler için gerekli bileşenleri el ile ekleyin. Tam olarak hangi kitaplıkların çoğaltıldığını bulmanız gerekiyorsa, kitaplıklara ve bağımlılıklarına bakmak için these instructions'u takip edebilirsiniz.

Biraz ilgisiz not: artık kullanılmamaktadır ve implementation veya api ile değiştirin edilmelidir compile yapılandırmayı kullanarak Gradle 3.0 itibariyle güzel bir açıklama here bulunabilir.

İlgili konular