ゲームエンジンUnityで
Androidアプリを作って、
それをAndroid端末に
USBケーブルでつないで
移すには、
apkファイルにビルド(変換)
しなければなりません。
その為には
Android Studioという
アプリが必要で
Androidアプリ開発に必要な
SDK
はデフォルトで
C:¥User¥AppData¥Local
¥Android¥Sdk
に格納されます。
ところが
Unity2021.1までは
Android Studioの
SDK
の他に
Unityをインストールする時に
Unityと同時にインストールされる
Android SDKをモジュールとして
使ってもできました。
格納先が
C:¥Program Files¥Unity¥Hub
¥Editor¥2021.1f1
¥Editor¥Data¥PlaybackEngines
¥AndroidPlayer¥SDK
になります。
コマンドプロンプトで
Androidのプラットフォームを
インストールするには
C:¥Program Files¥Unity¥Hub
¥Editor¥2021.1f1
¥Editor¥Data¥PlaybackEngines
¥AndroidPlayer¥SDK
¥tools¥bin
¥sdkmanager.bat “platforms;
android-31″
とすれば
APIをインストールできます。
ところが
それをしても
2021.2からは
Exception in thread “main”java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
となります。
同じような症状の人は
他にもいるようで
Android Studioの中の
JavaをPATHに設定するといいと
書いてます
が
なんかうまくいきません。
今までは
Android Studioで
自分のプラットフォームの
ツールをインストールして
Player Settingに
記載すれば簡単だったのに
なんでこんな
手動で
プラットフォームを
インストールしたり
JDKの場所まで
変更になったりしたのか
わけわからない。
Unity2021.2
(2021年10月25日)からは
「Gradle build failed」
というのが出てきます。
まず
apkファイルに
ビルドしようとすると
この画面が出てきます。
Android Studioで
sdkのAPIバージョンを
設定したのにもかかわらず
「Update Android SDK」
しなさいと
警告が出ます。
今までは
Target API Levelは
「Automatic (highest installed)」
でよかったのだけれど
デフォルトだと
API28までしか
設定できなくなったみたいで
API29以上は
デフォルトでは
できなくなったので
Android Studioではなく
Unityをインストールする時
一緒にインストールされる
Androidモジュールの
sdkmanager.batで
コマンドで
インストールしなければ
ならなくなりました。
先ほど説明した通り
C:\Program Files\Unity\Hub\Editor\2021.2\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin>sdkmanager.bat “platforms;android-31”
でAPIがインストールされる
はずだったんです。
でもこれで設定しても
「Gradle build failed」となります。
Unityのバージョンによって
Gradleのバージョンと
Gradle プラグインのバージョンを
変えなければならないみたいなので
Edit > Preferences >
External Tools >
Gradleの欄に
C:\gradle-6.1.1
とし、
File > Build Setteings >
Player Settings >
Publishing Settings >
Build > Custom Base Gradle Template
にチェックを入れ
Assets > Plugins > Android > basePlojectTemplate.gradle
のclasspathを4.0.1に変える。
でもやっぱり
「Gradle build failed」となります。
Unity2021.1までは
Target API Levelは
「Automatic (highest installed)」で
できます。
でも
Unity2021.2からは
どうやっても
「Gradle build failed」が
出ます。
Gradleプロジェクトにして
エクスポートして
Android Studioにインポートして
ビルドすればいいと
色んなサイトに
載っているので
次回は
これを試してみたいと
思います。