Unity/公開/Android
目次
- 1 Androidを公開する
- 2 UnityException: Can not sign the application Unable to sign the application; please provide passwords!エラーが出る場合
- 3 UnityEditor.BuildPlayerWindow+BuildMethodException: Build failed with errors.エラーが出る場合
- 4 Please set the Bundle Identifier in the Player Settings. The value must follow the convention 'com.YourCompanyName.YourProductName' and can contain alphanumeric characters and underscore. Each segment must not start with a numeric character or underscore.のエラーが出るとき
- 5 Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for details.のエラーが出るとき
- 6 trouble writing output: Too many field references to fit in one dex file: 71337; max is 65536. You may try using multi-dex. If multi-dex is enabled then the list of classes for the main dex list is too large.エラーのとき
- 7 NDK is missing a "platforms" directory.エラーのとき
- 8 "デバッグを無効にする必要"とでる場合
- 9 64 ビット要件に準拠してない場合
- 10 "android:exportedは使用されていません"とエラーとなるとき
Androidを公開する
以下を参考に実機で動かせるようにする
unity/実機/Android [ショートカット]
- File/BuildSettingsを選択
- Androidを選択
- PlayerSettingsを選択
- Inspector/端末マーク/PublisingSetting
- "Create〜"を選択しKeystoreを作成
- "Use a〜"を選択Keystoreのパスを入力する
- Buildするとapkができるのでそのままplay.consoleへ登録する
UnityException: Can not sign the application Unable to sign the application; please provide passwords!エラーが出る場合
keystoreのパスが空欄など
UnityEditor.BuildPlayerWindow+BuildMethodException: Build failed with errors.エラーが出る場合
- sdkのpathに日本語が入ってる
- playから公開用apkを既にインストールしており、updateに失敗する(この場合は端末に入ってるアプリを消せば良い)
Please set the Bundle Identifier in the Player Settings. The value must follow the convention 'com.YourCompanyName.YourProductName' and can contain alphanumeric characters and underscore. Each segment must not start with a numeric character or underscore.のエラーが出るとき
Bundle Identifierに"-"などが含まれていると上記エラーとなる
Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for details.のエラーが出るとき
http://dl.google.com/android/repository/tools_r22.0.5-macosx.zip 少し古いtoolsをdlしてsdkの下のtoolsを更新する
参考:http://nn-hokuson.hatenablog.com/entry/2017/09/05/202327
trouble writing output: Too many field references to fit in one dex file: 71337; max is 65536. You may try using multi-dex. If multi-dex is enabled then the list of classes for the main dex list is too large.エラーのとき
AndroidのBuildオプションのBuild SystemをGradleにする
参考:https://documentation.onesignal.com/docs/troubleshooting-unity
NDK is missing a "platforms" directory.エラーのとき
詳細エラー: If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.
SDKManagerから"sdk tools"タブをクリックし、NDKをインストールする
"デバッグを無効にする必要"とでる場合
以下エラーの場合
アップロードできませんでした デバッグ可能な APK または Android App Bundle をアップロードしました。セキュリティ上の理由により、Google Play に公開するにはデバッグを無効にする必要があります。詳しくは、デバッグ可能な APK または Android App Bundle についての説明をご覧ください。
Build Setting/Development Buildをoffにする
64 ビット要件に準拠してない場合
以下メッセージが出る
このリリースは Google Play の 64 ビット要件に準拠していません。
ProjectSettingのAndroidのConfiguration/ScriptingBackendをIL2CPPにし、ARM64をチェック
"android:exportedは使用されていません"とエラーとなるとき
以下メッセージが出る
unity 'android:exported' プロパティ セットは使用されていません。このファイルは Android 12 以降にはインストールできません。
android:exportedを宣言していない場合にエラーが出るようなので、 以下を、android:exported="true"を追加する
Assets/Plugins/Android/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN--> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools"> <application> <activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" + android:exported="true" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> </activity> </application> </manifest>
外部アプリから呼び出しを、NGとする場合は、android:exported="false"とすればよい。
どうしても無理そうなら、API Android11(31)以降からこのエラーが出る感じだったので、API Android10(30)へ戻す。