【问题标题】:Android Studio unable to resolve error ':app:preDexDebug'Android Studio 无法解决错误 ':app:preDexDebug'
【发布时间】:2015-03-09 00:47:34
【问题描述】:

我刚刚从 Eclipse 转向令人生畏的 Android Studio,但在摆脱这个似乎相当常见的错误时遇到了麻烦。

Error:Execution failed for task ':app:preDexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-oracle/bin/java'' finished with non-zero exit value 1

我查看并尝试了各种解决方案,包括简单地重新启动我的 Studio、使缓存无效并清除缓存、删除 JAR 并尝试再次添加它们,但到目前为止没有任何效果。我对这个 IDE 很陌生,所以我什至不确定它是如何工作的以及构建文件应该是什么样子。

这是我当前的 build.gradle (Module:app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.culami"
        minSdkVersion 21
        targetSdkVersion 21
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.android.support:support-v4:21.0.3'
    compile files('libs/WebSocket.jar')
    compile files('libs/android-support-v13.jar')
    compile files('libs/json-org.jar')
    compile files('libs/socketio.jar')
}

该项目是从 Eclipse 导入的,这样做的原因是我在使用 json-org.jar 和 WebSocket.jar 时遇到了一些构建问题。我无法解决这个问题和issue is still open。我不确定如何通过 gradle 添加这些依赖项,因为 github 页面并没有真正说明如何。

这是 Gradle 控制台的输出。

Executing tasks: [:app:assembleDebug]

Configuration on demand is an incubating feature.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:compileDebugNdk UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42103Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:preDexDebug UP-TO-DATE
:app:dexDebug
AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"}
AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;","position":{},"original":"com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)","position":{},"original":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)","position":{},"original":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)","position":{},"original":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)","position":{},"original":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)","position":{},"original":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)","position":{},"original":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)","position":{},"original":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)"}
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.Main.main(Main.java:106)","position":{},"original":"\tat com.android.dx.command.Main.main(Main.java:106)"}


 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-oracle/bin/java'' finished with non-zero exit value 2

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 23.247 secs

任何有关如何修复此 preDexDebug 错误的帮助都会有很大帮助!作为旁注,我也无法在左侧的项目资源管理器中看到我的“libs”文件夹。

【问题讨论】:

  • Gradlew on cli 。阅读有关使用它的信息。然后将 --info --debug --stacktrace 开关添加到 cli 构建。如果需要大输出,请将 cli stdout 保存到文件中。仔细查看输出
  • 我将看看如何使用 CLI。你能给我指出一个很好的资源吗?另外,我还不确定如何获取此输出,但我会尝试获取输出并将其上传到问题中以进一步明确。

标签: java android android-studio gradle


【解决方案1】:

您有一个 jar 文件或 lib 多次出现,需要在“gradle.build”中使用“配置”

寻找如何分析依赖关系,例如:

./gradlew :app:dependencies

background on wrapper

./gradlew --info clean assembleDebug > ../myProj_build

将在构建文件中为您提供额外信息,您可以分析这些信息以了解有关“preDex”错误的详细信息

【讨论】:

    【解决方案2】:

    您将 jar 依赖项添加为编译依赖项。您应该将其添加为“提供”,(见README)。

    【讨论】:

    • 是的,将 build.gradle 脚本从 compile fileTree(dir: 'libs', include: '*.jar')compile files('libs/xyz.jar') 更改为 provided fileTree(dir: 'libs', include: '*.jar')` 解决了这个问题,但是出现此问题的原因是,当用户选择将 JAR 作为库包含时,Android Studio 会自动将 JAR 放置为 compile files('libs/xyz.jar'),因此无法在编译标记和提供标记之间进行选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多