任务执行失败':app:dexDebug' - Android Studio

时间:2015-05-16 11:40:32

标签: android android-studio twitter-fabric

我正在使用Android Studio,当我尝试重建它时构建正常但在运行时我收到以下错误,我在项目中使用了Twitterkit插件

com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
    at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502)
    at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:277)
    at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
    at com.android.dx.command.dexer.Main.run(Main.java:246)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-openjdk-amd64/bin/java'' finished with non-zero exit value 2

我无法理解错误的位置并且我被困了很长时间,我很抱歉,如果这是一个重复的问题,但我试着寻找问题的现有解决方案,但到目前为止没有运气:( 任何建议都会非常有用

我的build.gradle如下

  buildscript {
        repositories {
            maven { url 'https://maven.fabric.io/public' }
        }

        dependencies {
            classpath 'io.fabric.tools:gradle:1.+'
        }
    }
    apply plugin: 'com.android.application'
    apply plugin: 'io.fabric'

    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }


    android {
        compileSdkVersion 22
        buildToolsVersion "21.1.2"

        defaultConfig {
            applicationId "schooltalk.com.playschoolpublisher"
            minSdkVersion 15
            targetSdkVersion 22
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

    dependencies {
        compile 'com.android.support:multidex:1.0.0'
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:22.1.1'
        compile 'com.google.android.gms:play-services:7.3.0'
        compile project(path: ':backend', configuration: 'android-endpoints')
        compile('com.crashlytics.sdk.android:crashlytics:2.2.4@aar') {
            transitive = true;
        }
        compile('com.twitter.sdk.android:twitter:1.5.0@aar') {
            transitive = true;
        }
    }

1 个答案:

答案 0 :(得分:1)

当您添加multidex:true时,请忘记在项目中创建一个Application课程,该课程将从MultiDexApplication延伸或者会发生很多不好的事情

public class YourApplication extends MultiDexApplication {
    ..........
}