Android Studio找不到Java编译器。

15
我下载了一个Android项目并尝试运行它。所以我将它导入到Android Studio(2.2)中,但当我运行该项目时,出现以下错误:

错误:任务“:app:compileDebugJava”执行失败。 找不到系统Java编译器。请确保您已安装JDK(而非仅仅是JRE),并配置了JAVA_HOME系统变量以指向相应的目录。

在运行每个项目之前都有效,我已经搜索了几天,但仍然没有找到可行的解决方案。
编辑:这是我的项目结构:项目结构 也许你们中的一些人有解决办法。

你说以前可以运行/导入其他项目吗?请尝试使用之前已经工作过的项目再次尝试。也许在此期间某个程序删除了你的JAVA_HOME条目?或者确实没有安装jdk了。 - cherry-wave
你能解释一下我该怎么做吗?对我来说,似乎这个项目的设置有些问题或者缺失了什么,因为其他项目都可以正常工作。我该如何检查呢?也许这很简单,但我只用Java和Android Studio工作了几个月。 - Tobi F.
当您认为是项目设置的问题时,请创建一个新的Android项目,并将下载的项目中的“app \ src”替换为“app \ src”。也许您还需要在build.gradle中添加一些依赖项。 - cherry-wave
1
我现在采用了您的建议并创建了一个新项目。然后我将app/src/main文件夹复制到了新项目中,应用程序可以在我的智能手机上启动。因此,这应该是导入项目的项目设置问题。 - Tobi F.
这太好了。如果你仍然对问题的原因感兴趣,你可以使用Total Commander或其他工具来比较你的新项目和原始项目。然后你就可以看到哪些文件缺失或错误了。 - cherry-wave
4个回答

14

当您在最新更新的Android Studio IDE版本中编译旧项目时,就会出现这种问题。从技术上讲:gradle构建版本过旧。只需使用新版本进行更新即可。

可以通过编辑build.gradle(Project:应用程序名称)来实现此目的。

    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
//update latese gradle build version.
    }

这个可能会有用。


更新了Gradle,看到了JDK的位置。对我来说有效。 - Vladyslav Ulianytskyi

10

我认为,你没有为当前项目设置JDK。你只是加载了代码。在项目结构中进行设置。

你可以在这里设置: 文件 > 项目结构 > [平台设置] > SDKs。


在我的主要问题中,我现在发布了项目结构的屏幕截图。你能告诉我它们是否正确吗? - Tobi F.
1
@TobiF. 不是的,标志指示要插入JDK位置的路径,而不是JRE。 JDK位置应该像:C:\Program Files\Java\jdk1.8.0_101或您加载它的任何位置。 - mchern1kov
不,这不应该是问题所在。路径是错误的,但是“使用嵌入式JDK”已经被选中,因此下面发布的路径会被忽略。(在我的应用程序中,这看起来与图片完全一样) - cherry-wave
1
@cherry-wave 哦,没注意到它被设置了) - mchern1kov

5
我遇到了同样的问题,后来发现是工程配置文件中包含的构建脚本依赖类路径和buildToolsVersion版本过旧。这与JDK路径无关,更改JDK路径没有帮助。
我按照此答案进行操作,并进行了以下添加: 在第1步中gradle-wrapper.properties文件位于我的主项目文件夹的gradle/wrapper文件夹内。Android Studio所接受的最低Gradle版本为gradle-3.3-all.zip在第4步中,对于classpath gradle版本,我使用了2.3.2版本,这是我找到的最新的非alpha版本,在这里可以正常工作。(不确定为什么这些版本不同,但它能正常工作)
我还必须将build.gradle文件中的buildToolsVersion从旧版本'20.0.0'更改为'25.0.0',位于我的模块子文件夹中。
现在我可以在Android Studio中成功编译该项目。
(项目主文件夹中的gradlew文件是在项目创建时生成的,可以进行重新生成。它可用于手动运行Gradle命令,例如调试此问题。但对于此解决方案,它不是必需的。)

0

在 build.gradle(Project: App name) 中进行编辑

dependencies {
    implementation 'com.android.tools.build:gradle:3.6.2'
    //update latese gradle build version.
        }

然后同步它。


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