我使用终端安装了Android Studio的新副本,但是当我创建一个新项目时,它会给出错误 “无法确定Java版本”。 JDK和SDK都已安装。 Android Studio已更新至最新版本。 我正在使用Ubuntu 14.04 LTS
答案 0 :(得分:27)
更改此:
targetCompatibility 'JavaVersion.VERSION_1_8'
sourceCompatibility 'JavaVersion.VERSION_1_8'
对此:
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
答案 1 :(得分:4)
我遇到了同样的问题,但在Windows 7操作系统上。这是因为在同一位置C:\Program Files\Java
Java 5,7,8和9中存在多个版本的java。尽管环境变量JAVA_HOME和PATH设置为Java 8,但Android studio指的是Java 9。 / p>
我的解决方案,在菜单中点击此处File > Project Structure
,将JDK指向适当的位置C:\Program Files\Java\jdk
答案 2 :(得分:3)
一个潜在的问题是旧版本的Gradle无法从OpenJDK生成的java -version
输出中解析Java版本。较新的版本可以(我认为它是围绕Gradle 2.2更新的;最新版本,2.9版本)。
答案 3 :(得分:3)
将gradle / wrapper / gradle-wrapper.properties中的distributionUrl更改为新版本的gradle
答案 4 :(得分:2)
我在ubuntu 16中遇到了同样的问题。这是因为在同一个位置7,8和9中存在多个版本的java。尽管环境变量JAVA_HOME和PATH设置为Java 8,但Android studio指的是Java 9。
我的解决方案,在菜单中,单击文件>项目结构在这里,选择8版本
答案 5 :(得分:1)
您是否设置了JAVA_HOME环境?在终端中运行echo $JAVA_HOME
,看看你是否获得了Java二进制文件的有效路径。
如果没有,请设置JAVA_HOME:
nano .bashrc
添加以下行:
export JAVA_HOME=<path to jdk>
export PATH=$JAVA_HOME/bin:$PATH
保存文件,然后重新加载.bashrc
source ~/.bashrc
答案 6 :(得分:0)
我只是将默认的Java JDK从Oracle JDK更改为OpenJDK。像魅力一样。
答案 7 :(得分:0)
类似于Keds的回答。在Android Studio中,在“项目”标签/文件资源管理器中,转到 Gradle脚本-> gradle.properties
您将看到类似这样的内容:
#Sat Sep 21 13:08:26 CEST 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-2.4-all.zip
distributionURL很旧,我根据其他答案认为,无法正确解析Java版本。
因此,请访问此网站以选择较新的版本: http://services.gradle.org/distributions/
我选择了
distributionUrl=http\://services.gradle.org/distributions/gradle-4.8.1-all.zip
只是因为。有较新的版本,例如4.10.2,但我并不是真正使用gradle,这只是项目所必需的。
尽管它并没有真正影响我运行项目,但我的项目并未指向新的JDK。它被推荐为自动指向Android Studio的jre文件。
如果要更改此设置,请获取最新的Java JDK的文件路径位置。通常在
C:\Program Files\Java\your_jdk_file
对于Windows。 在Android Studio中,转到文件->项目结构-> SDK位置。
取消选中“嵌入式JDK(推荐)”,然后将文件路径粘贴到整个文件的最新JDK文件路径。
例如
C:\Program Files\Java\jdk-10.0.2
不仅仅是bin文件。祝你好运!
答案 8 :(得分:0)
这对我没有任何帮助,以防万一它可以帮助别人: 右键单击项目中的“应用”,转到“打开模块设置”>“属性”,然后将源兼容性和目标兼容性更改为所需的Java版本。
答案 9 :(得分:0)
好吧,为我解决的问题是我没有使用embed jdk,然后将Java版本设置为Java 7并构建它,由于lambda表达式给了我错误,然后我将Java版本设置为1.8,然后同步,然后构建并有效
答案 10 :(得分:0)
使用最新版本的android studio打开旧的android项目时,会发生许多编译错误。但是,以下步骤对我有用,以更新项目设置和构建脚本。
打开文件->项目结构,并确保
在项目级别的 build.gradle 文件中,确保将 google()添加到buildscript {}和 allprojects {} 的存储库中
在模块级别的 build.gradle 文件中,将 compile 替换为 implementation ,将 testCompile 替换为< strong> testImplementation 。在 compileOptions {} 块删除中来自JavaVersion…字符串的单引号。
再次同步并创建项目。