Android - 任务“:app:compileDebugJavaWithJavac”执行失败

20

我是Android Studio和Gradle的新手。

我正在尝试使用以下命令从命令行运行我的应用程序:

gradlew installDebug

只有在我打开Studio并执行初始同步/构建操作后,才能将该应用程序安装到我的设备上。

每当我修改代码并尝试再次运行该命令时,构建失败并显示此错误:

Execution failed for task ':app:compileDebugJavaWithJavac'
> Could not find tools.jar

我该如何解决这个问题?先谢谢了。


你能展示一下你的 build.gradle 文件吗? - unicorn2
9个回答

25
将JAVA_HOME变量设置为C:\Program Files\Java\jdkX.XX对我有用。
之前由于某些原因它被设置为JRE目录。

7
这是正确的修复方法。在Windows 10上的详细操作步骤:1)前往搜索栏并输入“environment”,然后点击“编辑系统环境变量”。 2) 点击“环境变量”按钮。 3) 在“系统变量”标题下,点击“新建”,将名称命名为JAVA_HOME,并按照Jeffrey所说查找jdk路径。点击“确定”两次。4) 关闭当前的DOS窗口,打开一个新的DOS窗口。现在gradlew应该可以正常工作了。 - Someone Somewhere
注意:在Windows中,您可以在DOS窗口中键入“echo %JAVA_HOME%”来检查变量。它应该会显示C:\Program Files\Java...路径。如果没有显示,那么您可能没有成功创建变量,或者在创建系统变量后没有退出DOS窗口。 - Someone Somewhere
对我而言,有效的方法是将正确的 %JAVA_HOME% + /lib 添加到 PATH 变量中。来自 这个答案 - Veverke

8

你正在使用Linux吗?执行echo $JAVA_HOME会输出什么?

当我运行react-native run-android时,遇到了类似的问题。在将$JAVA_HOME(之前不存在)设置为JDK文件夹后,问题得以解决。在我的情况下,我在.bashrc文件末尾添加了以下行:

export JAVA_HOME="path/to/a/folder/with/JDK/jdk1.8.0_60"

并重新启动终端。


我不是 OP,但我有一个类似的错误(相同的任务,不同的错误),而且我在 Ubuntu 上。我没有 JAVA_HOME,所以我把它添加到 /usr/lib/jvm/java-8-oracle,但还是出现了同样的错误。 - Calvein
1
我刚刚“修复了”这个问题,我的React Native项目被称为native,但是这样是行不通的:https://github.com/facebook/react-native/issues/3437#issuecomment-152888456 - Calvein
重启终端也是很重要的一部分 +1 - Nick
3
注意:确保你已经安装了JDK(而不仅仅是JRE),在Ubuntu中运行以下命令:sudo apt-get install openjdk-7-jdk。这将会给你相同的错误提示。 - JustGage

6

我从项目根目录中删除了.gradle文件,重新构建了应用程序,然后一切正常。


3
对于任何在更新到AndroidStudio-2.0后遇到此问题的人:
我之前用的是AndroidStudio-1.3和jdk-1.7.X_XX。当我更新到AndroidStudio-2.0时,一切都很顺利,直到我重新启动计算机。重新启动后,我遇到了这个错误,以上所有答案都对我没用。
以下是我所做的事情: 1. 将项目复制到一个新文件夹中 2. 将jdk版本从1.7.X_XX升级到1.8.X_XX 3. 在项目结构中将JDK的路径更改为新路径: C:\Program Files\Java\jdk1.8.X_XX 4. Gradle同步
然后就可以了。

2

以上所有答案都是正确的。我只想提醒一下,如果您正在使用MAC,并且JDK路径的完整路径应该是

"/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home"

不要错过 /Contents/Home


1
之前的答案对我没有用,以下是有效方法: (适用于Ubuntu,其他系统也应该适用)
1. 进入项目文件夹:/.../projectlocation 2. 然后进入android文件夹:/.../projectlocation/android 3. 找到gradle.properties文件,然后在文件中添加这一行:org.gradle.java.home=/usr/local/jdk1.8.0_91 请注意,示例中右侧的JDK文件夹没有引号。

0

导出JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/"

我正在使用zshrc,我添加了上面的行。 之后仔细地在终端中输入echo $JAVA_HOME 然后你应该看到/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home,之后就可以完成构建了。


0

我遇到了同样的问题。我在Stack Overflow上搜索了几个小时,尝试了他们说的所有方法,但无法解决问题。然后我发现问题出在我的项目文件夹名称上。我只是重命名了文件夹名称,一切都正常工作了。


0

在Android Studio中,由于任务:app:compileDebugJavaWithJavac执行失败

-> 经过7个小时的研究,我在项目级别的“build.gradle”文件中找到了解决此问题的方法。

-> 只需从您的“build.gradle”文件中删除2个简单的东西即可。

        buildscript { 
          maven { url 'https://jitpack.io' }
        }
        
        allprojects{
            mavenCentral{ url "http://jcenter.bintray.com/" }
            maven { url "https://jitpack.io" }
        }

-> 并更新 Gradle 版本,就像这样。

        dependencies {
                classpath 'com.android.tools.build:gradle:4.2.2'
        }
        

-> 完成。


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