微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java-AndroidStudio:任务’app:preDexDebug的Gradle构建失败(ProcessException,ExecException,非零退出值1)

如果我将minSdkVersion设置为17,则我能够构建并运行整个项目而不会出现任何问题,但是如果我将minSdkVersion设置为21,则在尝试运行应用程序时,会出现以下错误(构建仍然可以正常进行).

我已经阅读了有关解决此问题的所有其他建议,例如Cannot build android project using Android Studio – Gradle 1.7,但它不能解决我的问题.

我从–debug开始gradle,它给了我输出

20:39:10.077 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTING
20:39:10.078 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Waiting until process started: command 'C:\Program Files\Java\jdk1.8.0_31\bin\java.exe'.
20:39:10.129 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTED
20:39:10.129 [DEBUG] [org.gradle.process.internal.ExecHandleRunner] waiting until streams are handled...
20:39:10.244 [INFO] [org.gradle.process.internal.DefaultExecHandle] Successfully started process 'command 'C:\Program Files\Java\jdk1.8.0_31\bin\java.exe''
20:39:10.246 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: Failed
20:39:10.247 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'command 'C:\Program Files\Java\jdk1.8.0_31\bin\java.exe'' finished with exit value 1 (state: Failed)
20:39:10.254 [INFO] [org.gradle.api.Project] processing archive D:\Benutzer\Henrik\Eigene Dokumente\Project\app\build\intermediates\exploded-aar\com.google.android.gms\play-services-appstate\8.1.0\jars\classes.jar...
ignored resource meta-inf/
ignored resource meta-inf/MANIFEST.MF


20:39:10.255 [ERROR] [org.gradle.api.Project] AGPBI: {"kind":"SIMPLE","text":"no classfiles specified","position":{},"original":"no classfiles specified"}


20:39:10.271 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':app:preDexDebug'
20:39:10.271 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :app:preDexDebug Failed
20:39:10.272 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :app:preDexDebug (Thread[Daemon worker Thread 12,5,main]) completed. Took 1 mins 25.716 secs.
20:39:10.272 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker Thread 12,5,main]] finished, busy: 1 mins 32.723 secs, idle: 0.088 secs

20:39:10.277 [ERROR] [org.gradle.BuildExceptionReporter] 
20:39:10.277 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build Failed with an exception.
20:39:10.277 [ERROR] [org.gradle.BuildExceptionReporter] 
20:39:10.278 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
20:39:10.278 [ERROR] [org.gradle.BuildExceptionReporter] Execution Failed for task ':app:preDexDebug'.
20:39:10.278 [ERROR] [org.gradle.BuildExceptionReporter] > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_31\bin\java.exe'' finished with non-zero exit value 1
20:39:10.278 [ERROR] [org.gradle.BuildExceptionReporter] 
20:39:10.278 [ERROR] [org.gradle.BuildExceptionReporter] * Try:
20:39:10.278 [ERROR] [org.gradle.BuildExceptionReporter] Run with --stacktrace option to get the stack trace. 

20:39:10.279 [LIFECYCLE] [org.gradle.buildresultLogger] 
20:39:10.279 [LIFECYCLE] [org.gradle.buildresultLogger] BUILD Failed
20:39:10.279 [LIFECYCLE] [org.gradle.buildresultLogger] 
20:39:10.279 [LIFECYCLE] [org.gradle.buildresultLogger] Total time: 1 mins 38.519 secs

build.gradle

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

android {
    compileSdkVersion 23
    buildToolsversion "23.0.1"

    defaultConfig {
        applicationId "de.project.test"
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:design:23.0.1'
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.google.android.gms:play-services:8.1.0'
    compile 'com.hannesdorfmann.mosby:mvp:2.0.0'
    compile 'com.hannesdorfmann.mosby:viewstate:2.0.0'
    compile 'com.google.guava:guava:18.0'
    // Dagger 2 and Compiler
    compile 'com.google.dagger:dagger:2.0.1'
    apt "com.google.dagger:dagger-compiler:2.0.1"
    compile 'javax.annotation:jsr250-api:1.0'
}

更新
如果我删除了com.google.android.gms:play-services:8.1.0的所有用法以及构建文件中的compile条目,则它将运行.因此,如果我不使用’com.google.android.gms:play-services:8.1.0’或将minSDK设置为17,它就会运行,但这不是解决方案.有谁知道我如何使用minSDK 21并使用播放服务(尤其是Google地图)?

解决方法:

最终,我找到了一个我有用的“解决方案”.

查看gradle的输出(使用–debug运行),您可以看到ERROR发生之前的最后一个INFO是:

20:39:10.254 [INFO] [org.gradle.api.Project] processing archive D:\Benutzer\Henrik\Eigene Dokumente\Project\app\build\intermediates\exploded-aar\com.google.android.gms\play-services-appstate\8.1.0\jars\classes.jar...

我在build.gradle中排除了此模块(play-services-appstate,无论执行什么操作),并且可以正常工作.

compile ('com.google.android.gms:play-services:8.1.0'){
    exclude module: 'play-services-appstate'
}

或者,如果您不需要整个播放服务库,例如只是谷歌地图,你可以改变

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

compile 'com.google.android.gms:play-services-maps:8.1.0'

这也为我工作.

因此,如果您遇到相同的错误,我建议使用–debug运行gradle并排除发生错误之前命名的模块(如果可以). preDexDebug故障确实很棘手.可能有很多原因(依赖项,java版本,…),所以我建议也看看有关此失败的许多其他stackoverflow-questions.

但是,如果有人有想法,我仍然会对确定从构建中排除的模块的真正问题感兴趣.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐