【问题标题】:android - Execution failed for task ':app:compileDebugJavaWithJavac'android - 任务':app:compileDebugJavaWithJavac'的执行失败
【发布时间】:2016-01-08 09:39:34
【问题描述】:

Android Studio + Gradle 新手。

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

gradlew installDebug

只有当我刚刚打开 Studio 并执行初始同步/构建时执行该命令时,该应用才会安装在我的设备上。

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

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

我该如何解决这个问题?提前致谢。

【问题讨论】:

  • 你能显示你的 build.gradle 文件吗

标签: android gradle android-gradle-plugin


【解决方案1】:

你在 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 和同样的错误。
  • 我刚刚“修复”了这个问题,我的 react-native 项目被称为 native 而你不能这样做:github.com/facebook/react-native/issues/…
  • 感谢您的回答。但是纠正 JAVA_HOME 变量的路径就可以了。不过,谢谢。
  • 重启终端也是很重要的一环+1
  • 注意:这很愚蠢,但请确保您在运行的 Ubuntu 中实际安装了 JDK(而不仅仅是 JRE):sudo apt-get install openjdk-7-jdk。它会给你同样的错误。
【解决方案2】:

将 JAVA_HOME 变量设置为 C:\Program Files\Java\jdkX.XX 对我有用。

由于某种原因,它以前被设置为 JRE 目录。

【讨论】:

  • 这是正确的解决方法。 Windows 10 上的详细操作方法:1) 转到搜索栏并输入“环境”,然后单击“编辑系统环境变量”。 2) 点击系统变量标题下的“环境变量”按钮3),点击“新建”。输入名称为 JAVA_HOME 并像 Jeffrey 所说的那样查找 jdk 的路径。单击“确定”并再次单击“确定”。 4) 关闭您的 DOS 窗口并打开一个新窗口。现在 gradlew 可以正常工作了
  • 注意:在 Windows 中,您可以通过在 DOS 窗口中输入 echo %JAVA_HOME% 来检查变量。它应该向您显示 C:\Program Files\Java\... 路径。如果没有,那么你没有成功创建变量,或者你创建系统变量后没有退出DOS窗口。
  • 对我来说,有效的是将正确的 %JAVA_HOME% + /lib 添加到 PATH 变量中。来自this answer
【解决方案3】:

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

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

不要错过 /Contents/Home

【讨论】:

    【解决方案4】:

    对于更新到 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 同步

    一切顺利。

    【讨论】:

      【解决方案5】:

      以前的答案对我不起作用。这是有效的: (Ubuntu,但也应该适用于其他人)

      1. 转到您的项目文件夹:/.../projectlocation

      2. 然后到android文件夹:/.../projectlocation/android

      3. 找到gradle.properties文件并在文件的任意位置添加这一行:org.gradle.java.home=/usr/local/jdk1.8.0_91

      请注意,没有引号,示例的右侧是我的 JDK 文件夹。

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        • 谢谢你,你救了我的命
        【解决方案7】:

        我遇到了同样的问题。我在堆栈溢出上寻找了几个小时,并尝试了他们所说的所有方法,但无法解决问题。然后我发现问题出在我的 项目中文件夹名称。我只是重命名文件夹名称,一切正常。

        【讨论】:

          【解决方案8】:

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

          我正在使用 zshrc 我添加了行。 之后仔细 在终端中回显 $JAVA_HOME 在构建完成后,您应该会看到 /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home。

          【讨论】:

            【解决方案9】:

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

            -> 完成。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-05-01
              相关资源
              最近更新 更多