安卓开发工具Android Studio中Gradle错误 - preDexDebug

4

我最近在我的Android Studio项目中添加了一个新的活动,现在当我尝试运行它时,出现了一个错误。它可以正常构建,但是在运行时会出现下面的错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:preDexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Applications/Android Studio.app/sdk/build-tools/android-4.4W/dx --dex --output /Users/davidcavanagh/joshcpdandroid/app/build/intermediates/pre-dexed/debug/classes-22ecb8c50fefe43948d87c9fee8e36a6b7d1bb5a.jar /Users/davidcavanagh/joshcpdandroid/app/build/intermediates/exploded-aar/com.android.support/support-v4/20.0.0/classes.jar
  Error Code:
    1

这是我的build.gradle文件。
apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion '20.0.0'

    defaultConfig {
        applicationId "com.joshcpd.android"
        minSdkVersion 15
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services:5.2.08'
    compile 'com.android.support:appcompat-v7:20.0.0'
    compile project(':libraries:zbar')
}

我已经尝试删除supportLappcompat依赖项,但是却出现了更多错误。非常感谢您的任何帮助。


尝试添加依赖项: compile 'com.android.support:support-v4:20.+' - dreambit.io dreambitio
很抱歉,那个方法没有起作用。我仍然面临着相同的错误。 - DMC
4个回答

15

我最终通过下载最新版本的gradle解决了这个问题。

我仍然会偶尔遇到这个错误,我只需要转到文件 ----> 无效缓存/重启来修复它。

我认为Android Studio非常有bug。


1
根据寻找dx命令的位置:
/Applications/Android Studio.app/sdk/build-tools/android-4.4W/dx
看起来您已经将构建工具版本与其他内容混淆了。您在问题中发布的构建文件看起来还可以,但请查看项目中的其他构建文件(至少会在libraries/zbar中有一些内容),并确保它们的buildToolsVersion语句正确。我怀疑您在某个地方有以下内容:
buildToolsVersion 'android-4.4W'

你应该有的内容是:
buildToolsVersion '20.0.0'

不行,我觉得我要么缺少正确的依赖项,要么像你说的那样存在冲突。谢谢。 - DMC

1
现在我知道问题的原因了。它是由于 \sdk\android-sdk\tools\lib\find_java.bat 中的错误代码引起的。
错误代码:
find /i "x86" > NUL && set arch_ext=32 || set arch_ext=64

正确的代码:

find /i "x86" > NUL && set arch_ext=32||set arch_ext=64

错误的代码会导致 java_exe 路径错误。
E:\Android\sdk\ANDROI~1\tools\lib\\find_java32 .exe

所以,当 dx.bat 运行时。
call "%java_exe%" %javaOpts% -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params% 

它将报告错误的状态:

Error Code:
    1

我的平台:win8-32位,安卓工作室1.0 - 4GB RAM


这是工具24中的一个错误。 - Eslam Sameh Ahmed

0

我曾经遇到过类似的问题,所以我卸载了Java JDK并重新安装了来自Oracle的最新版本,然后一切都正常了。安装最新版本JDK的链接在这里

注意:在执行上述操作后,您需要更新Android Studio中的JDK目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接