【Godot4】Invalid keystore formatでAPKが出力できない

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Godot4】Invalid keystore formatでAPKが出力できない

2024-1-26 | ,

Godot4でjava.io.IOException: Invalid keystore formatが発生してAPKファイルのエクスポートが失敗するのをなんとかしたい!

概要

今回の記事では、Godot4でjava.io.IOException: Invalid keystore formatが発生してAPKファイルのエクスポートが失敗するのをなんとかする手順を掲載する。

仕様書

環境

  • Gogot 4.2.1

手順書

下記のチュートリアルに従って、APKファイルをエクスポートしようとしたんだけども、java.io.IOException: Invalid keystore formatが発生して、実機で起動できないAPKファイルが作られてしまう。

keystoneファイルもチュートリアル通りに下記のコマンドでDebug用のを作成した。

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999 -deststoretype pkcs12

このコマンドだと「Debug User」はandroiddebugkey、「Debug Password」はandroidになる。

んで、この内容でAPKファイルをエクスポートしようとすると私の環境ではjava.io.IOException: Invalid keystore formatが発生してしまう。

んでんで、いろいろ試しみて環境変数JAVA_HOMEの値が過去にUnityで使ってたOpenJDK 11のパスになってるのが原因というのが分かった。

公式のチュートリアルで指定されてるバージョンよりだいぶ古かったていう。

OpenJDK 17を配置して、環境変数JAVA_HOMEの値を配置したパスに変更する。下記はC直下に配置した場合の例。

C:\jdk-17.0.2

GodotのEditorを再起動して、再度エクスポートするとjava.io.IOException: Invalid keystore formatは発生せず、正常に実機で起動できるapkファイルが出力された!

まとめ(感想文)

Android Studio、Eclipse、Unity、Godot、JAVA_HOMEに依存するのが多くて、都度切り替えるのがめんどいと思う今日この頃。