Мультидекс проблема в Android App Android Studio - PullRequest
0 голосов
/ 13 мая 2018

Всякий раз, когда он пытался запустить приложение. это сообщение появляется для версий 5.0 и выше, и появляется другое мультидексное исключение, в то время как я запускаю его на версиях с леденцом на палочке ниже. Вот две разные трассировки стека ошибок:

5.0 и выше трассировка стека

Ошибка: не удалось выполнить задачу ': app: transformDexArchiveWithExternalLibsDexMergerForDebug'. com.android.builder.dexing.DexArchiveMergerException: невозможно объединить dex

ниже трассировки стека 5.0

Ошибка: ошибка преобразования байт-кода в dex: Причина: com.android.dex.DexException: Несколько файлов dex определяют Lcom / android / volley / toolbox / NetworkImageView; Ошибка: в com.android.dx.merge.DexMerger.getSortedTypes (DexMerger.java:616) Ошибка: в com.android.dx.merge.DexMerger.mergeClassDefs (DexMerger.java:598) Ошибка: в com.android.dx.merge.DexMerger.mergeDexes (DexMerger.java:171) Ошибка: в com.android.dx.merge.DexMerger.merge (DexMerger.java:198) Ошибка: в com.android.builder.dexing.DexArchiveMergerCallable.call (DexArchiveMergerCallable.java:61) Ошибка: в com.android.builder.dexing.DexArchiveMergerCallable.call (DexArchiveMergerCallable.java:36) Ошибка: в java.util.concurrent.ForkJoinTask $ AdaptedCallable.exec (ForkJoinTask.java:1424) Ошибка: в java.util.concurrent.ForkJoinTask.doExec (ForkJoinTask.java:289) Ошибка: в java.util.concurrent.ForkJoinPool $ WorkQueue.runTask (ForkJoinPool.java:1056) Ошибка: в java.util.concurrent.ForkJoinPool.runWorker (ForkJoinPool.java:1692) Ошибка: в java.util.concurrent.ForkJoinWorkerThread.run (ForkJoinWorkerThread.java:157) Ошибка: не удалось выполнить задачу ': app: transformDexArchiveWithDexMergerForDebug'. com.android.build.api.transform.TransformException: com.android.dex.DexException: несколько файлов dex определяют Lcom / android / volley / toolbox / NetworkImageView;

при создании отладочной сборки

Ошибка: ошибка преобразования байт-кода в dex: Причина: com.android.dex.DexException: несколько файлов dex определяют Lcom / android / volley / toolbox / DiskBasedCache $ CountingInputStream;

вот файл Gradle

  apply plugin: 'com.android.application'

android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 27
defaultConfig {
    multiDexEnabled true
    applicationId "com.example.myapp"
    minSdkVersion 14
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner 
 "android.support.test.runner.AndroidJUnitRunner"
}
 buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
  'proguard-rules.pro'
    }
}
productFlavors {
}
packagingOptions {
    exclude 'res/raw/tf.properties'
}
}

ext {
supportLibraryVersion = "27.0.1"
constraintLayoutVersion = "1.0.2"
junitVersion = "4.12"
runnerVersion = "1.0.1"
espressoVersion = "3.0.1"
gsonVersion = "2.2.4"

 }

 dependencies {
//implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "com.android.support:appcompat-v7:$supportLibraryVersion"
implementation 'com.android.support:multidex:1.0.2'

//implementation 'com.android.volley:volley:1.0.0'
implementation files('libs/volley.jar')
implementation "com.google.code.gson:gson:$gsonVersion"
//    implementation 'com.google.android.gms:play-services:+'
implementation 'com.google.android.gms:play-services-analytics:10.2.4'
//implementation 'com.google.android.gms:play-services-analytics:11.4.0'
implementation "com.android.support.constraint:constraint- 
 layout:$constraintLayoutVersion"
implementation project(':framework')

implementation files('libs/io-fabric-sdk-android_fabric-classes.jar')
implementation files('libs/com-crashlytics-sdk-android_answers-classes.jar')
implementation files('libs/com-crashlytics-sdk-android_beta-classes.jar')
implementation files('libs/com-crashlytics-sdk-android_crashlytics- 
 classes.jar')


testImplementation "junit:junit:$junitVersion"
androidTestImplementation "com.android.support.test:runner:$runnerVersion"
androidTestImplementation "com.android.support.test.espresso:espresso-core:$espressoVersion"
}

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion '27.0.1'
        }
    }
}
}
...