警告:[options] 源值 7 已过时,将在未来版本中删除
Posted
技术标签:
【中文标题】警告:[options] 源值 7 已过时,将在未来版本中删除【英文标题】:warning: [options] source value 7 is obsolete and will be removed in a future release 【发布时间】:2021-02-23 16:46:44 【问题描述】:我在运行 flutter run 时得到 ff 错误。
warning: [options] source value 7 is obsolete and will be removed in a future release
warning: [options] target value 7 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
error: warnings found and -Werror specified
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':connectivity:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
这是我的颤振医生输出:
[√] Flutter (Channel stable, 1.20.4, on Microsoft Windows [Version 10.0.18362.1139], locale en-US)
• Flutter version 1.20.4 at C:\src\flutter
• Framework revision fba99f6cf9 (8 weeks ago), 2020-09-14 15:32:52 -0700
• Engine revision d1bc06f032
• Dart version 2.9.2
[√] android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at C:\Users\USER01\AppData\Local\Android\sdk
• Platform android-30, build-tools 30.0.2
• Java binary at: C:\PROGRA~1\Java\jdk-13.0.2\bin\java
• Java version Java(TM) SE Runtime Environment (build 13.0.2+8)
• All Android licenses accepted.
我似乎无法在谷歌上找到任何东西。我该如何解决这个错误?
【问题讨论】:
【参考方案1】:这是针对即将弃用的旧版 Java(在本例中为 7)的编译器的警告。
要解决此问题,您有两种选择:
-
您可以将
JAVA_HOME
设置为较旧版本的Java,然后运行您的Flutter 构建。您还需要在您构建的任何地方(命令行、IDE、CI/CD 等)提供此 JAVA_HOME
或者我更喜欢的方法是告诉 Gradle 使用较旧的 Java 工具链来编译 Java 源代码。
要执行选项 2,请将 android/build.gradle
的 allprojects
部分更新为如下所示:
allprojects
repositories
google()
mavenCentral()
tasks.withType(JavaCompile).configureEach
javaCompiler = javaToolchains.compilerFor
languageVersion = JavaLanguageVersion.of(8)
这包括更新已弃用的 jcenter
Maven 存储库。
2021 年 11 月编辑:对工具链的支持也已添加到 Kotlin Gradle 插件中。
https://blog.jetbrains.com/kotlin/2021/11/gradle-jvm-toolchain-support-in-the-kotlin-plugin/
【讨论】:
它拯救了我的一天:D 在我的情况下没有JavaLanguageVersion.of()
,只有kotlin_version
,你能告诉我如何解决这个问题吗?
@SonXuanNguyen 这个答案可能会有所帮助:***.com/a/65543854/176496【参考方案2】:
尝试这样做
Android Studio -> File -> Invalid cache and restart
【讨论】:
【参考方案3】:这不是修复,而是临时解决方法。将以下内容放入您的build.gradle
中的allprojects
部分:
tasks.withType(JavaCompile)
options.compilerArgs << '-Xlint:-options'
如果您的 Android java 代码是未经修改的默认生成代码,则该错误与您的依赖项之一有关,您将必须通过 pubspec.yaml
并找到导致错误的库。
【讨论】:
我正在使用 Flutter 并收到上述错误消息。这为我修好了!谢谢!【参考方案4】:我在 2021 年 9 月在 Mac 上使用 Flutter 2.6.0 和 VSCode 时遇到了这个问题,上面的项目级解决方案都不适合我。我尝试了一堆东西:
在 launch.json 中设置 java.home 在 settings.json 中设置 JAVA_HOME 以上所有 build.gradle 建议 使用 jenv 为项目目录在本地设置 java 安装 RedHat Java VSCode 扩展并在那里调整各种设置没有任何特定项目对我有用。但是,使用 jenv 将我的 global java 版本设置为 jdk 11 确实解决了问题,尽管使用了大锤。
【讨论】:
以上是关于警告:[options] 源值 7 已过时,将在未来版本中删除的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除
使用IDEA运行项目时提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
Idea 中提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除