如何在Android Studio项目中设置Java库的源版本

5
我有一个Android项目,分为一个纯Java库和一个Android应用程序。 我正在使用Gradle Retrolambda,以便编写Java 8代码。
Android Studio 1.3正确识别了我在Android模块中设置的android.compileOptions.sourceCompatibilityJavaVersion.VERSION_1_8
现在我想让Android Studio意识到Java模块也是Java 8。 我尝试过(在Gradle脚本的根目录,在apply plugin 'java'之后):
  1. sourceCompatibility = 1.8,但不起作用。 Gradle正确编译,但Android Studio显示警告(“未使用赋值”),并假定为Java 6。

  2. sourceCompatibility 1.8无法编译。

如何使Android Studio识别它,而不必求助于“设置源版本”快速修复? 还是现在未实施? 编辑 为了澄清,整个项目可以使用./gradlew assembleDebug进行编译。问题出在Android Studio源代码高亮上。
我的Java模块build.gradle如下:
buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.2.0'
    }
}

repositories {
    jcenter()
    mavenCentral()
}

apply plugin: 'java'
apply plugin: 'me.tatarka.retrolambda'

sourceCompatibility = JavaVersion.VERSION_1_8

dependencies {
    compile 'io.reactivex:rxjava:1.0.12'
    compile 'io.reactivex:rxjava-string:1.0.0'

    compile 'joda-time:joda-time:2.8.1'

    testCompile 'junit:junit:4.12'
}

retrolambda {
    jdk System.getenv("JAVA_HOME")
    defaultMethods true
    incremental false
}

以下是Android Studio给我的结果: Android Studio高亮错误

2个回答

0

在你的Java模块build.gradle中编写如下代码:

    buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }

    dependencies {
        classpath "me.tatarka:gradle-retrolambda:3.2.0"
    }
}

apply plugin: 'java'
apply plugin: 'me.tatarka.retrolambda'

repositories {
    mavenCentral()
}

dependencies {


}

retrolambda {
    jdk System.getenv("JAVA8_HOME")
    defaultMethods true
    incremental false
}

1
谢谢,但它已经在Android模块中工作了。我正在使用一个纯Java模块。 - ThorinII
我的项目已经编译通过了(我几乎有那段代码);但是Android Studio的语法高亮提示存在问题。 - ThorinII
1
@ThorinII,从你的Java模块中删除sourceCompatibility = JavaVersion.VERSION_1_8。其次,在Java模块中忽略该错误。我也遇到了同样的问题,但不用担心。将sourceCompatibility = JavaVersion.VERSION_1_8添加到您的主应用程序build.gradle文件中。在进行这些更改后,请执行清理和重建操作。 - Anand Singh
@ThorinII 如果问题已解决,请接受答案:) - Anand Singh

-1

看起来(感谢@Anand Singh)Android Studio还没有处理这个问题,所以您需要应用快速修复。


抱歉,你的快速解决方案是什么? - onelaview

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