2024年6月9日日曜日

ubuntuでjlinkが無いとエラーになるときは該当するjavaのjdkをインストールすれば良い


ubuntu22.04でexpoを利用するandroidアプリを動かそうとしたところ下記のエラーが発生してビルドに失敗しました。
* What went wrong:
Execution failed for task ':expo-modules-core:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':expo-modules-core: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: /home/asuki/Android/Sdk/platforms/android-33/core-for-system-modules.jar.
> jlink executable /usr/lib/jvm/java-18-openjdk-amd64/bin/jlink does not exist.

試行錯誤したところ該当するjavaのjdkをインストールしていないのが原因で、下記のコマンド実行で解決しました。
java-18-openjdkのエラーだったので、そのjdkをインストールしました。
sudo apt install openjdk-18-jdk

jlinkはheadlessに含まれているので、それのインストールでも解決します。
sudo apt install openjdk-18-jdk-headless

jdkをインストールしていなくてもjavaの関連ファイルの配置のために/usr/lib/jvm/java-18-openjdk-amd64/binが作成されいくつかの実行可能ファイルが入っていたので、てっきりjdkがインストール済みなのかと勘違いして時間を取られました。

参考
How to fix jlink does not exist?

0 件のコメント :