android 使用gradle编译时出现无效的源版本1.7错误

brqmpdu1  于 2023-04-04  发布在  Android
关注(0)|答案(4)|浏览(459)

我需要一个使用菱形运算符的库1.7。
我跟着these sO的答案...但没有快乐。
从Gradle构建

compileSdkVersion 19
buildToolsVersion '19.0.3'

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

defaultConfig {
    minSdkVersion 10
    targetSdkVersion 19
    versionCode 22
    versionName "1.3.1"
}

错误:任务“:MyApp:compileDefaultFlavorDebugJava”执行失败。
无效源版本:1.7
Java Home设置:$ echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

3xiyfsfu

3xiyfsfu1#

检查你的JVM版本。它不应该是1.6。

./gradlew --version
javac -version

在OSX上检查您的$JAVA_HOME

echo $JAVA_HOME

您可以在~/.bash_profile JDK中设置JAVA_HOME环境变量:
/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/

pdsfdshx

pdsfdshx2#

进入项目结构-〉SDK位置,确保JDK位置设置为JDK的正确位置。设置JAVA_HOME将在命令行构建中修复它,但在Android Studio中,它仍然失败,直到我修复了这个设置。

cyvaqqii

cyvaqqii3#

这里的答案要求您使用环境变量或IDE设置进行全局更改,如果您必须支持多个项目和JVM,或者只是不想进行全局永久更改,那么这可能并不理想。
在Gradle中设置JVM版本的正确方法是在www.example.com文件中添加一个属性设置gradle.properties。该属性为org.gradle.java.home,值应该是JDK或JRE安装的根目录的路径。

e37o9pze

e37o9pze4#

解决此问题的一种更独立于系统的方法是使用Gradle的toolchains。当指定工具链时,Gradle将搜索常见的系统位置和您为匹配指定Java版本的JRE/JDK配置的位置。对于 * 1.7之后的Java * 版本,Gradle将下载所需的JDK,如果无法在本地找到(除非已手动禁用自动配置)。
如果安装了Java 1.7,则build.gradle的以下添加应可解决此问题:

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(7)
    }
}

如果JDK/JRE安装在Gradle未搜索的位置,则任何Gradle项目任务都会出现错误No locally installed toolchains match。要解决此问题,应更新gradle.properties(在GRADLE_USER_HOME中)以包含JDK/JRE的位置。

org.gradle.java.installations.paths=/usr/lib64/openjdk-7

相关问题