Android Studio找不到JAVA_HOME

时间:2014-02-24 23:25:12

标签: java android android-studio

由于来自Android Studio的非常恼人的异常,我似乎无法编译我的Android应用程序:

]()![enter image description here

Execution failed for task ':myapp-services:compileDebugJava'.
    Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory.

我在Ubuntu 12.04上,我正在运行Oracle的Java 7 JRE / JDK。

~/.bashrc

export JAVA_HOME="/usr/lib/jvm/java-7-oracle/"

android-studio/bin/studio.sh

export JAVA_HOME="/usr/lib/jvm/java-7-oracle/"

javac -version的输出:

javac 1.7.0_51

java -version的输出:

java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

printenv JAVA_HOME的输出:

/usr/lib/jvm/java-7-oracle

which javac的输出:

/usr/bin/javac

我也已退出并重新登录我的会话。

我真的不确定我在这里缺少什么。为什么Android Studio无法编译我的应用程序?

9 个答案:

答案 0 :(得分:14)

我通过使用

更新build.gradle(顶级)来解决它
classpath 'com.android.tools.build:gradle:2.1.2'

答案 1 :(得分:10)

我在a different answer中找到了一个解决方案:

rm ~/.AndroidStudioPreview/config/options/jdk.table.xml

似乎已经发生的事情是为先前版本的Android Studio配置了某些内容并且此配置过长:)

答案 2 :(得分:2)

我也遇到了这个错误。经过几个小时试图解决它,我设法解决了这个问题。

在我的情况下,从命令行执行应用程序就行了!

这就是我所做的(我使用的是Windows 10)。请在项目的根目录(我们有 app 目录)上运行这些命令:

1) gradlew assembleDebug

  • Gradle将执行其任务,您应该看到以下消息: BUILD SUCCESSFUL

2) adb install -r app \ build \ outputs \ apk \ app-debug-unaligned.apk

  • 执行此行后,您将看到以下消息: [100%] /data/local/tmp/app-debug-unaligned.apk     pkg:/data/local/tmp/app-debug-unaligned.apk 成功

3) adb shell am start -n package_name / package_name.MainActivity ,其中“package_name”必须替换为您的包名称(您可以在AndroidManifest.xml上找到它)。如果“MainActivity”不是您的启动器活动,请将其替换为您自己的活动。

  • 您会看到以下消息:正在启动:Intent {cmp = package_name / .MainActivity} ,其中“package_name”是您的应用包名称。

它将在您的设备上安装该应用程序,之后,Android Studio似乎再次找到JAVA_HOME变量。您应该可以通过点击Android Studio上的“运行”按钮来运行该应用程序。

希望它有所帮助!

答案 3 :(得分:2)

我通过更新(build.gradle(Project:projectName))

的类路径解决了这个问题
classpath 'com.android.tools.build:gradle:2.2.3' 

答案 4 :(得分:2)

转到“设置”->“项目结构”->“ JDK路径”并将其更改为系统JDK而不是Studio JDK,您将启动并运行。

答案 5 :(得分:1)

更新build.gradle模块

    classpath 'com.android.tools.build:gradle:3.0.1'

解决了我的问题

答案 6 :(得分:0)

刚刚下载了最新版本(android-studio-ide-1641136.dmg),我刚刚更改了Info.plist文件内容。它最初配置为从Java版本开始使用1.6 *。我安装了1.8,所以只需改为1.8 *就可以了。

我在Mac Yosemite上。

答案 7 :(得分:0)

我发现Android Studio studio.bat文件存在问题 这是

    ::------------------------------------------------------
    :: Locate a JDK installation directory which will be used to run the IDE.
    :: Try (in order): ANDROID_STUDIO_JDK, ..\jre, JDK_HOME, JAVA_HOME.
    :: ---------------------------------------------------------------------
    IF EXIST "%ANDROID_STUDIO_JDK%" SET JDK=%ANDROID_STUDIO_JDK%
    IF NOT "%JDK%" == "" GOTO jdk
    IF EXIST "%~dp0\..\jre" SET JDK=%~dp0\..\jre
    IF NOT "%JDK%" == "" GOTO jdk
    IF EXIST "%JDK_HOME%" SET JDK=%JDK_HOME%
    IF NOT "%JDK%" == "" GOTO jdk
    IF EXIST "%JAVA_HOME%" SET JDK=%JAVA_HOME%
    IF "%JDK%" == "" GOTO error

您是否在最后两行代码中遇到问题?
似乎如果您的环境变量是%JAVA_HOME%,批处理文件将出现GOTO错误,并且将显示错误消息,并且即使%JAVA_HOME%包含有效路径但是环境是否为%变量就像%ANDROID_STUDIO_JDK%一样,因为我自己创建它然后它会起作用


提议的解决方案

(1)编辑批处理文件 你看到这个的地方 IF EXIST "%JAVA_HOME%" SET JDK=%JAVA_HOME% IF "%JDK%" == "" GOTO error
把它换成这个
IF EXIST "%JAVA_HOME%" SET JDK=%JAVA_HOME% IF NOT "%JDK%" == "" GOTO jdk IF "%JDK%" == "" GOTO error
(2)创建一个名为%ANDROID_STUDIO_JDK%的环境变量 如图所示 https://kb.wisc.edu/cae/page.php?id=24500

答案 8 :(得分:0)

检查 echo $ JAVA_HOME

如果它没有给你正确的路径。关注setting JAVA_HOME path on Ubuntu

如果它为您提供了正确的路径设置,那么您需要更新您的gradle插件版本(它对我有用)并重建项目。