首页 > 解决方案 > 错误:将字节码转换为dex时出错:原因:com.android.dex.DexException:多个dex文件定义Lokhttp3/internal/http/RealResponseBody;

问题描述

构建项目后出现错误,例如..

错误:将字节码转换为dex时出错:原因:com.android.dex.DexException:多个dex文件定义Lokhttp3/internal/http/RealResponseBody;错误:com.android.dex.DexException:多个 dex 文件定义 Lokhttp3/internal/http/RealResponseBody;错误:在 com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661) 错误:在 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) 错误:在爪哇。

com.android.build.api.transform.TransformException: com.android.dex.DexException: 多个dex文件定义Lokhttp3/internal/http/RealResponseBody;信息:BUILD FAILED in 2m 51s 信息:15 个错误 信息:0 个警告 信息:查看控制台中的完整输出

这是我的构建 gradle 文件。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.kamran.logingreentheme"
        minSdkVersion 17
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        useLibrary 'org.apache.http.legacy'
        multiDexEnabled true

        configurations {
            all {
               // exclude module: 'httpclient'
                resolutionStrategy {
                    force 'junit:junit:4.11'
                    force 'com.android.support:support-annotations:28.0.0'
                }
            }
        }
        packagingOptions {
            exclude 'META-INF/DEPENDENCIES'
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/license.txt'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/NOTICE.txt'
            exclude 'META-INF/notice.txt'
            exclude 'META-INF/ASL2.0'
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/menu'] } }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:2.0.4'
    implementation 'com.android.support:exifinterface:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.volley:volley:1.1.1'
    //implementation 'org.apache.httpcomponents:httpcore:4.4.1'
   // implementation 'org.apache.httpcomponents:httpmime:4.2.3'
    implementation 'com.squareup.picasso:picasso:2.71828'
    implementation 'com.googlecode.json-simple:json-simple:1.1.1'
    implementation 'com.android.support:multidex:1.0.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    androidTestImplementation 'com.android.support:support-annotations:28.0.0'
}

我尝试过的事情

1.clean ,rebuild
2.invalidate catch restart
3.multiplexEnabled **true** also add dependencies:implementation 'com.android.support:multidex:1.0.3'

任何人都可以解决我的错误吗?谁能解释我为什么会收到这个错误?

标签: androidandroid-multidex

解决方案


加入gradle.property这一行:

org.gradle.jvmargs=-Xmx1024m

之后清理并重建项目。


推荐阅读