[Delphi12] アップグレードしたらAndroidのbuildができなくなった。
タイトル
編集:2024.10.10
Delphi12にアップグレードしたらAndroidのbuildができなくなった。
C++は13からサポート終了したそうですね。その終了理由がわけわかめですが?
過去にKylix, .net のサポート打ち切りで信用できない開発言語ですので、とうとうきましたね
RAD Studio Athens は、iOS 64 ビット プラットフォームと Android 32 ビット プラットフォームを削除しました。
そろそろ Delphi androidを Visual Studioに移植したほうがよさそうです。幸い1プロジェクトでcoplilot先生に手伝ってもらえば数日あれば移植終わりそうです。
近いうちに .NET MAUI に移植したいと思います。
とりあえず復旧できたの手順を書いておきます
現象
標準インストールしただけでは、不具合があり
SDK 基底パス, avdmanager.bat または androud.bat の場所, SDK APIの場所
が無効になっていて利用できない。
sdkmanager.bat --update
java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
環境変数 pathは
一番最初にC:\Program Files\Eclipse Adoptium\jdk-17.0.9.9-hotspot
がありエラーになるのはおかしい。
JAVA_HOMEを確認する
C:\Program Files\Microsoft\jdk-11.0.16.8-hotspot\
になっていた
C:\Program Files\Eclipse Adoptium\jdk-17.0.9.9-hotspot
に手動で変更する。もしくは別途インストールする
https://learn.microsoft.com/ja-jp/java/openjdk/download#openjdk-17
をインストールすると JAVA_HOME は自動で更新される
sdkmanager.bat --update
android9/api28
android10/api29
android11/api30
android14/api34
sdkmanager.bat --list
で 目的のターゲットをみつける
今回 android11の端末で使用するので
sdkmanager.bat --install "platforms;android-30"
sdkmanager.bat --install "build-tools;30.0.3"
再起動するとまだ
SDK APIの場所が無効になっている
になっていたので
に変更する
( ※34に設定して最小ターゲットで調整することもできる )
プロジェクト設定
ターゲットプラットフォーム(Android 64/32)
Android 64/32ビット
ライブラリ: 右クリック
システム ファイルをデフォルトに戻す
Delphiを再起動する
📌 パスに日本語を含むフォルダをbuildできなくなっていました。エラーが文字化けしているので、アップグレートでUTF8とAnsiを正しく渡さなくなったようです。
英字フォルダに移動するとbuildできました。
とりあえず直りました!
この対応に半日時間を無駄にしてしまいました!
作成時は緊急だったの安易にDelphiで作ってしまいましたが、少し時間をかけて Android StudioかVisual Studioで作っておけば こんな苦労しなかったと思う案件でした!!
Copilot 先生に手伝ってもらいながら 気が向いときに Visual Studio(C#/.NET MAUI)に移植する予定です。
MAUIは、設計時にパーツをビュジュアル編集できない致命的な欠陥仕様があるので注意。
貼り付け設計ができない旧石器時代へ逆行してしまうので、MAUIへの移行は慎重に。