主要版本号53比此编译器支持的最高主要版本号52要更新。Android Studio。

6
我在编译时收到了一个警告,它告诉我:
> Task :app:compileDebugJavaWithJavac
warning: C:\Users\bleuc\AppData\Local\Android\Sdk\build-tools\30.0.1\core-lambda- 
stubs.jar(java/lang/invoke/LambdaMetafactory.class): major version 53 is newer than 52, the highest 
major version supported by this compiler.
It is recommended that the compiler be upgraded.
C:\Users\bleuc\AppData\Local\Android\Sdk\build-tools\30.0.1\core-lambda- 
stubs.jar(java/lang/invoke/LambdaMetafactory.class): major version 53 is newer than 52, the highest 
major version supported by this compiler.

1个警告

我该如何解决这个问题?我正在使用Android Studio。

在我的module:app中。

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

我知道53代表Java 9,所以我尝试将1_9输入代码中,但是却出现了许多错误。

上面!我不知道怎么在Android Studio中纠正这个问题。

2个回答

11

好的,我在 build.gradle(应用级别,例如:模块:YourApp.app)中更新了我的 buildToolsVersion 版本为“30.0.2”,然后警告消失了。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    defaultConfig {
        applicationId "com.app"
        minSdkVersion 20
        targetSdkVersion 30
        versionCode 1
        versionName "0.0.1"
    }

    ...
}

对于那些(像我一样)不知道什么是buildToolsVersion的人来说,它是在app目录下的build.gradle文件中定义的属性,在顶部非常明显。Android Studio甚至很好地将其突出显示以通知您可以增加该值,并且使用“显示上下文操作”建议将其替换为最新可用版本。 - Dmitrii Semikin

0

以Windows为例,如果您的操作系统JRE是Java 8(52),而您的程序是在Java 14(58)中编译的,那么您将面临类似的错误。但是,如果您指定程序使用JDK 14二进制文件运行,则它将正常运行。

简而言之,请检查您系统默认的JRE版本,如果比您用于编译的版本旧,则可能会出现此错误。请注意,您在IDE中设置使用较新版本的JRE时可能不会遇到任何问题。

确保正确关联.jar文件与支持的JRE,以便它使用正确的JRE来运行可执行文件。


为什么它不更新自己....我的jdk在android文件夹中,安卓想让我再做什么 U_U - Loic Jackotin
你不能自动更新Java的主要版本,因为它涉及到语言或编译器本身的更改,所以可能会对部署过程造成巨大问题。但是,你可以接收累积更新,例如从Java8_u260到Java8_u261。主要版本必须手动更新。如果我的答案能够解决你的问题,请标记为已接受(在我的答案左侧有一个勾选标记),我将不胜感激。 - Hung Vu
问题在于我不知道如何做。 - Loic Jackotin
我想我开始理解了。所以我需要安装Java 9(53)吗? - Loic Jackotin
正确,或者任何更新的版本。另一种方法是使用Java 8重新编译您的项目,这样您就不需要安装新的JDK,但前提是您不使用任何Java 9功能。 - Hung Vu

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