CrossRoad

XRを中心とした技術ブログ。 Check also "English" category.

Unity2021.3.28のAndroid13ビルドとインストールで困った時のTips

先日、UnityでAndroid13向けのビルドをした時に色々詰まったことを踏まえて、手順を書きました。

そのときに詰まった時のログメッセージや参考になったサイトも書いていたのですが、別の記事にした方が見やすいと思ったので、この記事に別途分けることにしました。

使用した環境 ・Mac OS Ventura 13.4 ・Pixel 7 (Android 13) ・Unity 2021.3.28f1

1. 詰まった状況と解決方法

1.1 No Compatible Android Device Found というエラーがでてビルドが失敗する

今回使ったPixel 7がARM64なのですが、Project SettingでARMv7が選択されていることで発生します。
ARM64を選択すると解決します。

No Compatible Android Device Found on Unity

1.2 Project SettingでARM64がグレーアウトして選択できない

こちらの投稿を参考にして解決できました。Scripting Backendの設定を変更することで、ARM64が選択できるようになります。

discussions.unity.com

1.3 アプリをインストールできたが、Pixel7から実行すると「このアプリはインストールされていません」というトーストが表示されてアプリが実行できない

このメッセージが表示される原因は色々あるようです。この言葉で調べると多数の情報が出てきます。

そこで出てくる内容は、アプリキャッシュを削除する、スマートフォンを再起動する、アプリを再度インストールする、apkではなくてaabでビルドする、などでしたが、いずれも当てはまりませんでした。

このエラーだけではわからず、最終的にこの後書く内容で解決しました。

1.4 UnityからPixel7にインストールするとき、インストールはできるがPermission Denial: starting Intent { act=android.intent.action.MAINが出ている

Unity Consoleにこのエラーが出ても、見かけ上Pixel7にはアプリがインストールされたように見えます。しかし、実行すると「このアプリはインストールされていません」が出ます。

解決するには、AndroidManifest.xmlでandroid:exported="true"を追加します。
こちらに記載があります。

Android 12 以降をターゲットとするアプリに、インテント フィルタを使用するアクティビティ、サービス、またはブロードキャスト レシーバが含まれている場合は、それらのアプリ コンポーネントで android:exported 属性を明示的に宣言する必要があります。
(途中省略)
アプリ コンポーネントに LAUNCHER カテゴリが含まれている場合は、android:exported を true に設定します。他のほとんどの場合は、android:exported を false に設定します。

developer.android.com

今回はAndroidManifest.xmlにLauncherという記載があったので、trueにしました。

1.5 UnityからPixel7にインストールするとき、INSTALL_PARSE_FAILED_MANIFEST_MALFORMED が出てインストールが失敗する

先ほどのAndroidManifest.xmlでandroid:exported="false"にしていると、このエラーがでます。trueにしてからBuild and Runを実行すると解決します。

2. おわりに

UnityのAndroidビルドで困ったという記事が多かったので書いてみました。何かのお役に立てば幸いです。