如何将Android项目升级到Java 11

e4yzc0pl  于 2022-12-28  发布在  Android
关注(0)|答案(8)|浏览(334)

我正在使用最新的Android Studio Arctic Fox 2020.03.01 Canary 8和AGP 7,我想将我的项目转换为使用Java 11。显然,仅执行以下操作并不像www.example.com上提到的那样有效https://developer.android.com/studio/preview/features#use-java-11:

android {
    compileSdkVersion 30

    compileOptions {
      sourceCompatibility JavaVersion.VERSION_11
      targetCompatibility JavaVersion.VERSION_11
    }

    // For Kotlin projects
    kotlinOptions {
      jvmTarget = "11"
    }
}

生成时出现以下错误:

Execution failed for task ':app:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':app:androidJdkImage'.
   > Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
      > Execution failed for JdkImageTransform: /Users/azfarsiddiqui/Library/Android/sdk/platforms/android-30/core-for-system-modules.jar.
         > jlink executable /Applications/Android Studio Preview.app/Contents/jre/jdk/Contents/Home/bin/jlink does not exist.

* 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.

为了简单起见,我已经在Jetpack Compose示例项目中尝试了这一点:https://github.com/android/compose-samples/tree/main/JetNews
有什么想法吗?谢谢你们

yiytaume

yiytaume1#

来自Android Studio Artic Fox 2020.3.1
首选项(设置)-〉构建、执行、部署-〉构建工具-〉Gradle -〉Gradle JDK -〉选择JDK 11或下载JDK

Artic Fox 2020.3.1版本之前

我假设您已经安装了Java 11或更高版本。

文件-〉项目结构-〉SDK位置-〉将JDK位置更改为Java 11 jdk文件夹

如果您使用的是Mac OS,请尝试在以下位置搜索该文件夹:

/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home

lc8prwob

lc8prwob2#

安装OpenJDK 11。使用brew时,它看起来像这样:

brew tap AdoptOpenJDK/openjdk
brew install adoptopenjdk11

在Android Studio中:File -> Project Structure -> SDK Location,设置JDK位置
可以使用以下命令查找JDK位置

/usr/libexec/java_home -v 11

对我来说是/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home

zysjyyx4

zysjyyx43#

我安装了openjdk11,但是jlink实际上并不存在。
重新安装openjdk11修复了此问题。

    • (如果已安装)* sudo apt autoremove openjdk-11-jdk-headless
  • sudo apt install openjdk-11-jdk-headless
cfh9epnr

cfh9epnr4#

如果要删除“目标JRE版本与项目SDK不匹配”警告,则需要更改$PROJECT_DIR$/.idea/misc.xml中的ProjectRootManager设置。

<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">

<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK" />
pvabu6sv

pvabu6sv5#

文件-〉项目结构-〉SDK位置-〉Gradle设置-〉GradleJDKx 1c 0d1x

2ul0zpep

2ul0zpep6#

只需下载Android工作室大黄蜂(2021.1.1)金丝雀5 https://developer.android.google.cn/studio/archive?hl=id

blpfk2vs

blpfk2vs7#

请确保您使用的是Android Gradle插件7.0.0-alpha 08&Gradle版本6.8.3在项目结构Java 11中,我可以正常工作

首先更新IDE

gzjq41n4

gzjq41n48#

我在尝试使用与Android Studio Flamingo Canary捆绑的JDK17(graalvm 17.0.3)不同的JDK17时也遇到了这个错误。切换到捆绑版本后,我修复了这个错误。

相关问题