【问题标题】:Error:Execution failed for task ':app:dexDebug'. finished with non-zero exit value 2 with Facebook Fresco错误:任务“:app:dexDebug”执行失败。使用 Facebook Fresco 以非零退出值 2 结束
【发布时间】:2015-06-30 02:52:31
【问题描述】:

我已经阅读了关于这个问题的每一个帖子,但我找不到我的问题的任何答案。

添加 Fresco 库后,我在构建应用程序时遇到此错误。 有问题的行是:compile 'com.facebook.fresco:fresco:0.5.3+' 错误:

错误:任务 ':app:dexDebug' 执行失败。

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_71\bin\java.exe'' 完成 非零退出值 2

如果我去掉 fresco compile 行,它就可以工作。

我的 gradle 看起来像这样:

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        //classpath 'org.robolectric:robolectric-gradle-plugin:1.1.0'
    }
}

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

apply plugin: 'com.android.application'
//apply plugin: 'org.robolectric'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    defaultConfig {
        applicationId "com.maddogs.mymoney"
        minSdkVersion 11
        targetSdkVersion 22
        //testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
    }
    sourceSets {
        androidTest {
            setRoot('src/test') //note that this is androidTest instead of instrumentTest
        }
    }

    productFlavors {
    }

    lintOptions {
        abortOnError false
    }
}

dependencies {

    compile 'com.facebook.fresco:fresco:0.5.3+'
    compile 'com.facebook.android:facebook-android-sdk:4.3.0'

    compile 'com.facebook.stetho:stetho:1.1.1'
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'de.greenrobot:eventbus:2.4.0'
    compile 'com.google.android.gms:play-services:7.5.0'
    compile 'com.jakewharton:butterknife:6.1.0'
    compile 'com.android.support:support-v4:22.2.0'
    compile 'com.android.support:recyclerview-v7:22.2.0'
    compile 'com.android.support:cardview-v7:22.2.0'
    compile 'com.android.support:design:22.2.0'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4'
    compile 'com.bignerdranch.android:recyclerview-multiselect:+'
    compile files('libs/Parse-1.9.2.jar')
    compile files('libs/ParseCrashReporting-1.9.2.jar')
    compile files('libs/ParseFacebookUtilsV4-1.9.2.jar')
}

提前致谢!

【问题讨论】:

    标签: java android facebook android-gradle-plugin fresco


    【解决方案1】:

    当您的项目中多次包含库时,有时会显示app:dexDebug 错误。当错误与您的应用程序中的任何依赖项无关时,则可能是 65k 方法限制问题。 Dalvik Executable 规范限制了方法的总数,您可以阅读更多关于它的信息here

    修改您的应用Gradle构建文件配置以包含支持库并启用multidex输出,如以下Gradle构建文件sn-p所示:

    android {
        compileSdkVersion 21
        buildToolsVersion "21.1.0"
    
        defaultConfig {
            ...
            minSdkVersion 14
            targetSdkVersion 21
            ...
    
            // Enabling multidex support.
            multiDexEnabled true
        }
        ...
    }
    
    dependencies {
      compile 'com.android.support:multidex:1.0.0'
    }
    

    【讨论】:

    • 我删除了compile 'com.android.support:support-v4:22.2.0' 仍然没有运气。问题是在我将 Fresco 添加到我的 gradle 后开始的,如果我删除它的行,它编译没有问题。
    • 可能是方法限制的问题?尝试启用 multidex 支持,在您的 defaultConfig 中使用“multiDexEnabled true”。
    • Heloisa 成功了,非常感谢!如果可以的话,我建议您发布 multiDex 解决方案作为答案(或编辑您的以上内容),以便我们将来可以帮助其他面临同样问题的人!再次感谢!
    猜你喜欢
    • 2015-06-27
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 2015-08-12
    • 2016-02-23
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多