当我尝试将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?
答案 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"
}