簡體   English   中英

AndroidStudio:任務'app的Gradle構建失敗:preDexDebug(ProcessException,ExecException,非零退出值1)

[英]AndroidStudio: Gradle build failed for task 'app:preDexDebug (ProcessException, ExecException, non-zero exit value 1)

如果我將minSdkVersion設置為17,我能夠毫無問題地構建和運行整個項目,但是如果我將minSdkVersion設置為21,它會給我以下錯誤,如果我嘗試運行應用程序(構建仍然可以正常工作)。

我已經閱讀了有關解決此問題的所有其他建議,例如無法使用Android Studio構建android項目 - Gradle 1.7但它沒有解決我的問題。

我開始使用--debug,它給了我輸出:

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”的所有用法以及它運行的構建文件中的編譯條目。 因此,如果我不使用'com.google.android.gms:play-services:8.1.0'或者如果我將minSDK設置為17,那么它就會運行,但這可能不是解決方案。 有沒有人知道如何使用minSDK 21並使用播放服務特別是google-maps?

最后,我找到了一個適合我的“解決方案”。

查看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'
}

另外,如果你不需要整個游戲服務庫,例如google-maps,你可以改變

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問題。

但是,如果有人有想法,我仍然有興趣確定我從構建中排除的模塊的真正問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM