Android - 使用Dex进行调试的类转换

时间:2016-03-26 15:41:50

标签: android android-gradle android-multidex

我的项目工作正常,直到我添加了Facebook依赖项。 我开始收到此错误。 我读了很多问题,问题似乎与MultiDex有关。 但是没有一个解决方案适合我

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: 
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 1

即使我删除了我添加的内容,它仍会显示,并且gradle似乎在构建时花费了大量时间

这是我的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "net.ciblo.spectrodraft"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    multiDexEnabled true

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'

repositories {
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }

}
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:cardview-v7:23.2.1'
compile 'com.android.support:design:23.2.1'
compile 'com.daimajia.easing:library:1.0.1@aar'
compile 'com.daimajia.androidanimations:library:1.1.3@aar'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.pnikosis:materialish-progress:1.5'
compile 'com.nineoldandroids:library:2.4.+'
compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
compile 'com.android.support:support-v4:23.2.1'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

}

4 个答案:

答案 0 :(得分:23)

将以下代码添加到build.gradle应用模块解决了我的问题

android{
    defaultConfig {

        // Enabling multidex support.
        multiDexEnabled true
    }


    dexOptions {
        javaMaxHeapSize "4g"
    }
}
dependencies {
    //...
    compile 'com.android.support:multidex:1.0.0'
}

答案 1 :(得分:4)

您可以有选择地将Google Play服务API编译到您的应用中。例如,要仅包含Google Fit和Android Wear API,请替换build.gradle文件中的以下行:

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

这些行:

compile 'com.google.android.gms:play-services-fitness:8.4.0'
compile 'com.google.android.gms:play-services-wearable:8.4.0'

==>保持应用程序中的方法数量(包括框架API,库方法和您自己的代码)在65,536限制之内。

答案 2 :(得分:0)

在build.gradle中添加以下内容为我解决了该问题,

android {
//...

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
//...
}

答案 3 :(得分:0)

这个可怕的重复出现的问题最近又再次打击了我。 gradle构建永久停在app:transformClassesWithDexForDebug上,仅运行了几个小时而从未完成。这次我通过删除所有对“ fabric”的引用来修复它,新的Crashlytics层被压在了我们身上。

//apply plugin: 'io.fabric'   //REMOVE
//classpath 'io.fabric.tools:gradle:1.26.1'  //REMOVE