Update target platform when creating jdk image
With this change, we are able to create jdk image with Jdk 21+ because
Jdk 21 introduces a format requirement for target platform and we cannot
use "android" anymore.
Note the value of target platform doesn't matter to us, we just choose a
closest one to replace "android".
Bug: 294137077
Test: existing for Jdk 17 + manually for Jdk 21
Change-Id: I7f9faedeaeea0ae802d9a33930df116152ff2748
diff --git a/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/dependency/JdkImageTransformDelegate.kt b/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/dependency/JdkImageTransformDelegate.kt
index b850b19..174c177 100644
--- a/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/dependency/JdkImageTransformDelegate.kt
+++ b/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/dependency/JdkImageTransformDelegate.kt
@@ -220,7 +220,8 @@
setExecutable(jmodExecutable)
addArgs("create")
addArgs("--module-version", jlinkVersion)
- addArgs("--target-platform", "android")
+ // Use LINUX-OTHER to be compatible with JDK 21+ b/294137077
+ addArgs("--target-platform", "LINUX-OTHER")
addArgs("--class-path", moduleJar.absolutePath)
addArgs(jmodFile.absolutePath)
}
diff --git a/build-system/gradle-core/src/test/java/com/android/build/gradle/internal/dependency/JdkImageTransformDelegateTest.kt b/build-system/gradle-core/src/test/java/com/android/build/gradle/internal/dependency/JdkImageTransformDelegateTest.kt
index 4e5ef82..c6eb3d1 100644
--- a/build-system/gradle-core/src/test/java/com/android/build/gradle/internal/dependency/JdkImageTransformDelegateTest.kt
+++ b/build-system/gradle-core/src/test/java/com/android/build/gradle/internal/dependency/JdkImageTransformDelegateTest.kt
@@ -252,7 +252,7 @@
contains("exports java.lang")
contains("exports android.icu.lang")
contains("exports dalvik.system")
- contains("platform android")
+ contains("platform LINUX-OTHER")
}
}