添加播放服务时出现意外的顶级异常

时间:2015-02-10 14:36:28

标签: android google-play-services build.gradle

我有一个项目需要使用Google Play服务库。但是当我将它添加到我的依赖项时,我得到以下错误:

意外的顶级例外

  

错误:任务':app:dexDebug'的执行失败。    com.android.ide.common.internal.LoggedErrorException:无法运行命令:       C:\ Eclipse \ adt-bundle-windows-x86_64-20140702 \ sdk \ build-tools \ 21.1.2 \ dx.bat --dex --no-optimize --output C:\ Users \ Reigstad \ Documents \ secret- tyrion-android \ Tyrion \ app \ build \ intermediates \ dex \ debug --input-list = C:\ Users \ Reigstad \ Documents \ secret-tyrion-android \ Tyrion \ app \ build \ intermediates \ tmp \ dex \ debug \ inputList.txt   错误代码:       2   输出:       意外的顶级例外情况:       com.android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]中:65536           在com.android.dx.merge.DexMerger $ 6.updateIndex(DexMerger.java:502)           在com.android.dx.merge.DexMerger $ IdMerger.mergeSorted(DexMerger.java:283)           在com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)           在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)           在com.android.dx.merge.DexMerger.merge(DexMerger.java:189)           在com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)           在com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)           在com.android.dx.command.dexer.Main.run(Main.java:246)           在com.android.dx.command.dexer.Main.main(Main.java:215)           在com.android.dx.command.Main.main(Main.java:106)>

我的build.gradle看起来像这样:

apply plugin: 'com.android.application'

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.facebook.android:facebook-android-sdk:3.21.1'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'org.immutables:gson:1.1.3'
    compile 'org.parceler:parceler:0.2.15'
    compile 'com.google.android.gms:play-services:6.5.87'
}

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.tyrion.tyrion"
        minSdkVersion 13
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        packagingOptions {
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/NOTICE.txt'
        }
    }
}

repositories { mavenCentral()}

我已经尝试了所有可以找到的解决方案,但它们似乎都不适合我。我的项目工作得很好,就在我添加libary时它不会工作。

希望你们能帮忙。

1 个答案:

答案 0 :(得分:12)

你可以达到65k方法限制。要更精确地使用Google Play服务,请按this guide,您只能使用所需的部分。这可能会解决你的问题