"Method references in a .dex file cannot exceed 64K"更改 build.gradle 后



我得到一个错误,说我有太多的方法引用:

Error:The number of method references in a .dex file cannot exceed 64K.

当我试图通过gradle app文件将targetSdkVersion更改为24和minSdkVersion更改为较低的sdk(19)时,这一切都开始了。这导致我不得不改变整个文件的一些值,比如

 compile 'com.android.support:appcompat-v7:23.0.0'

 compile 'com.android.support:appcompat-v7:24.1.1'

我读到人们得到这个错误时,他们有错误的值在build.gradle。这是我的原始版本。修改前的Gradle:

apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
    applicationId "com.delbridge.seth.alarm"
    minSdkVersion 23
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'),        
    'proguard-rules.pro'
    }
    debug {
        debuggable true
    }
}
}

有什么想法是导致这一点吗?

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'org.jsoup:jsoup:1.9.2'
compile 'org.jdeferred:jdeferred-android-aar:1.2.4'
compile 'com.google.android.gms:play-services-appindexing:9.0.2'
compile 'com.google.android.gms:play-services:9.0.2'
compile 'com.android.support:support-v4:23.0.0'
compile 'com.android.support:design:23.0.0'
compile 'com.android.support:cardview-v7:23.0.+'
compile 'com.android.support:recyclerview-v7:23.0.+'
compile 'com.google.firebase:firebase-ads:9.0.2'
}
apply plugin: 'com.google.gms.google-services'

这是我的构建。gradle目前:

apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
defaultConfig {
    applicationId "com.delbridge.seth.alarm"
    minSdkVersion 19
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        debuggable true
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'org.jsoup:jsoup:1.9.2'
compile 'org.jdeferred:jdeferred-android-aar:1.2.4'
compile 'com.google.android.gms:play-services-appindexing:9.4.0'
compile 'com.google.android.gms:play-services:9.4.0'
compile 'com.google.firebase:firebase-ads:9.4.0'
compile 'com.google.android.gms:play-services-ads:9.4.0'
compile 'com.google.android.gms:play-services-auth:9.4.0'
compile 'com.google.android.gms:play-services-gcm:9.4.0'
compile 'com.android.support:support-v4:24.1.1'
compile 'com.android.support:design:24.1.1'
compile 'com.android.support:cardview-v7:24.1.1'
compile 'com.android.support:recyclerview-v7:24.1.1'

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

你没有必要在这一行包含所有Google Play Services:

compile 'com.google.android.gms:play-services:9.4.0'

因此,删除这一行,留下包含单个组件的行:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.1.1'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'
    compile 'org.jsoup:jsoup:1.9.2'
    compile 'org.jdeferred:jdeferred-android-aar:1.2.4'
    compile 'com.google.android.gms:play-services-appindexing:9.4.0'
    //remove this line:
    //compile 'com.google.android.gms:play-services:9.4.0'
    compile 'com.google.firebase:firebase-ads:9.4.0'
    compile 'com.google.android.gms:play-services-ads:9.4.0'
    compile 'com.google.android.gms:play-services-auth:9.4.0'
    compile 'com.google.android.gms:play-services-gcm:9.4.0'
    compile 'com.android.support:support-v4:24.1.1'
    compile 'com.android.support:design:24.1.1'
    compile 'com.android.support:cardview-v7:24.1.1'
    compile 'com.android.support:recyclerview-v7:24.1.1'
}

注意:

如果上述解决方案不能解决您的问题,那么您需要启用multidex。

在您的构建中尝试此操作。gradle文件:

        android {
      compileSdkVersion 22
       buildToolsVersion "23.0.0"
        defaultConfig {
         minSdkVersion 14 //lower than 14 doesn't support multidex
         targetSdkVersion 22
         // Enabling multidex support.
         multiDexEnabled true
     }
 }
 dependencies {
 compile 'com.android.support:multidex:1.0.1'
 }

查看此页:https://developers.google.com/android/guides/setup并使用所需的Google play服务

最新更新