由于来自Android Studio的非常恼人的异常,我似乎无法编译我的Android应用程序:
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无法编译我的应用程序?
答案 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
2) adb install -r app \ build \ outputs \ apk \ app-debug-unaligned.apk
3) adb shell am start -n package_name / package_name.MainActivity ,其中“package_name”必须替换为您的包名称(您可以在AndroidManifest.xml上找到它)。如果“MainActivity”不是您的启动器活动,请将其替换为您自己的活动。
它将在您的设备上安装该应用程序,之后,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插件版本(它对我有用)并重建项目。