':应用程序:transformClassesWithDexForDebug&#39 ;. > com.android.build.transform.api.TransformException:当我在我的工作室项目中添加Facebook最新SDK时

时间:2015-10-13 06:24:21

标签: android facebook

当我尝试将Facebook添加为库或作为gradle时,我收到错误

//compile 'com.facebook.android:facebook-android-sdk:4.7.0'

这是我的android studio项目结构,我的主App文件夹gradle有以下库。

  compile fileTree(include: ['*.jar'], dir: 'libs')

    compile project(':twitter-core-release')
    compile project(':tweet-ui-release')
    compile project(':twitter-release')
    compile project(':tweet-composer-release')
    //compile 'com.facebook.android:facebook-android-sdk:4.7.0'
    compile project(':facebook_sk')
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:design:23.0.1'
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
    compile 'com.squareup.retrofit:converter-jackson:2.0.0-beta1'
    compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta1'
    compile 'com.twotoasters.jazzylistview:library:1.2.1'
    compile 'com.twotoasters.jazzylistview:library-recyclerview:1.2.1'
    compile 'com.pnikosis:materialish-progress:1.7'
    compile 'com.google.android.gms:play-services-gcm:8.1.0'
    compile 'com.android.support:recyclerview-v7:23.0.1'
    compile 'io.realm:realm-android:0.82.2'
    compile 'com.google.android.gms:play-services-analytics:8.1.0'
    compile 'jp.wasabeef:recyclerview-animators:1.3.0'
    compile 'com.google.code.gson:gson:2.3'
    compile 'io.fabric.sdk.android:fabric:1.3.+@aar'
    compile 'com.digits.sdk.android:digits:1.7.+@aar'

在我的应用程序库中它有universal-image-loader-1.9.4.jar

并且在facebook_sk中有以下内容

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    //compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:support-v4:23.0.1'
}

在facebook libs中它有bolt-android-1.1.2.jar

如果我删除了facebook skd并构建了我的项目,那么它在工作室中运行良好但是当我无法使用facebook sdk时它会给我以下错误:

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

我是否需要使用multidex?

3 个答案:

答案 0 :(得分:10)

目前我通过添加multidex

解决了问题
defaultConfig {
        applicationId "com.xxxxx"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        // Enabling multidex support.
        multiDexEnabled true
    }


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':twitter-core-release')
    compile project(':tweet-ui-release')
    compile project(':twitter-release')
    compile project(':tweet-composer-release')
    //compile 'com.facebook.android:facebook-android-sdk:4.7.0'
    compile project(':facebook_sk')
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
    compile 'com.squareup.retrofit:converter-jackson:2.0.0-beta1'
    compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta1'
    compile 'com.twotoasters.jazzylistview:library:1.2.1'
    compile 'com.twotoasters.jazzylistview:library-recyclerview:1.2.1'
    compile 'com.pnikosis:materialish-progress:1.7'
    compile 'com.google.android.gms:play-services-gcm:8.1.0'
    compile 'com.google.android.gms:play-services-analytics:8.1.0'
    compile 'io.realm:realm-android:0.82.2'
    compile 'jp.wasabeef:recyclerview-animators:1.3.0'
    compile 'com.google.code.gson:gson:2.3'
    compile 'io.fabric.sdk.android:fabric:1.3.+@aar'
    compile 'com.digits.sdk.android:digits:1.7.+@aar'
    compile 'com.android.support:multidex:1.0.1'
}

对于Facebook sdk:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    //compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:design:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'
}

答案 1 :(得分:3)

当我有不同版本的重复依赖项时,我得到同样的错误。

尝试此命令并检查是否有两次:

gradle dependencies

答案 2 :(得分:0)

我必须启用multiDex并分配javaMaxHeapSize" 4g"否则会出现内存错误。

在app build gradle文件中需要以下内容,在android中,defaultConfig已经存在,只需在那里添加multiDexEnabled,dexOptions就是新的。

defaultConfig {
    multiDexEnabled true
}

dexOptions {
    javaMaxHeapSize "4g"
}