「Unity/公開/Android」の版間の差分
(→"android:exportedは使用されていません"とエラーとなるとき) |
|||
(同じ利用者による、間の15版が非表示) | |||
行34: | 行34: | ||
参考:https://documentation.onesignal.com/docs/troubleshooting-unity | 参考: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 | ||
+ | <pre> | ||
+ | <?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> | ||
+ | </pre> | ||
+ | 外部アプリから呼び出しを、NGとする場合は、android:exported="false"とすればよい。 | ||
+ | |||
+ | どうしても無理そうなら、API Android11(31)以降からこのエラーが出る感じだったので、API Android10(30)へ戻す。 | ||
+ | |||
+ | 参考:https://xrdnk.hateblo.jp/entry/2021/11/05/115104 |
2022年1月14日 (金) 06:07時点における最新版
目次
- 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)へ戻す。