「Unity/バージョンアップメモ/unity6000.0.12f1」の版間の差分
(→"This Android Gradle plugin (8.3.0) was tested up to compileSdk = 34."エラーが出る時) |
(→"CMakeLists.txt"エラーが出る時) |
||
行126: | 行126: | ||
</pre> | </pre> | ||
参考:https://discussions.unity.com/t/android-build-error-user-is-using-a-static-stl-but-library-requires-a-shared-stl/920912/3 | 参考:https://discussions.unity.com/t/android-build-error-user-is-using-a-static-stl-but-library-requires-a-shared-stl/920912/3 | ||
+ | |||
+ | =="BaseUnityGameActivityTheme) not found."エラーが出る時== | ||
+ | 対応策 | ||
+ | Assets/Plugins/Android/AndroidManifest.xml の以下を削除 | ||
+ | <pre> | ||
+ | <activity android:name="com.unity3d.player.UnityPlayerGameActivity"> | ||
+ | <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" /> | ||
+ | <meta-data android:name="android.app.lib_name" android:value="game" /> | ||
+ | </activity> | ||
+ | </pre> | ||
==" AD_SERVICES_CONFIG"エラーが出る場合== | ==" AD_SERVICES_CONFIG"エラーが出る場合== |
2024年9月15日 (日) 05:04時点における版
(2024/8/3時点、iOSは問題なかったが、Androidビルドが、うまくいかなかったので、一旦、保留)
目次
- 1 TMP_InputFieldのEditorの文字化けについて
- 2 合わせてほかもバージョンアップ
- 3 前バージョンが含まれてないか確認
- 4 compileSdkVersionのエラー
- 5 DllNotFoundException: Unable to load DLL 'FirebaseCppApp-12_1_0'エラーが出る
- 6 RequestConfiguration.Builder()が存在しないエラー
- 7 "com.google.android.gms:play-services-measurement-api:22.0.2 collides with another value"エラーがでる場合
- 8 "AndroidManifest.xml, you can use the AGP Upgrade Assistant"エラーが出る時
- 9 "This Android Gradle plugin (8.3.0) was tested up to compileSdk = 34."エラーが出る時
- 10 "CMakeLists.txt"エラーが出る時
- 11 "BaseUnityGameActivityTheme) not found."エラーが出る時
- 12 " AD_SERVICES_CONFIG"エラーが出る場合
- 13 "minSdkVersion is less than or equal to targetSdkVersion."エラーがでる場合
- 14 "libunity.so"エラーがでる場合
- 15 FileProviderエラーが出る時
- 16 minSdkVersionのエラーが出る時
- 17 BaseUnityGameActivityThemeのエラーが出る時
- 18 AdMobで、"to find your app ID"エラーが出る時
TMP_InputFieldのEditorの文字化けについて
TMProをImport TMP Essentialsするとなおる
合わせてほかもバージョンアップ
- GoogleMobileAds-v9.2.0(v8.7.0から)
- firebase_unity_sdk_12.1.0(11.8.0から)
→結局versionアップしても、versionアップせずでも、うまくAndroidがビルドできなかった。
以下でアンインストール対応して、インストールすると良いかも。
- Assets/Editor Default Resources/CrashlyticsSettings.asset を削除
- Assets/Firebase を削除
- Assets/GoogleMobileAds のスクリプトだけ削除
- Assets/Plugins/Android/FirebaseApp を削除
- Assets/Plugins/Android/FirebaseCrashlytics を削除
コマンドだとで消すときは、これ
cd Assets rm -fr ExternalDependencyManager rm -fr GoogleMobileAds/GoogleMobileAds* rm -fr GoogleMobileAds/CHANGELOG.md rm -fr GoogleMobileAds/CHANGELOG.md.meta rm -fr GoogleMobileAds/Editor rm -fr GoogleMobileAds/Editor.meta rm -fr GoogleMobileAds/LICENSE rm -fr GoogleMobileAds/LICENSE.meta rm -fr GoogleMobileAds/link.xml rm -fr GoogleMobileAds/link.xml.meta rm -fr Plugins/Android/FirebaseApp rm -fr Plugins/Android/FirebaseApp.meta rm -fr Plugins/Android/FirebaseCrashlytics.androidlib rm -fr Plugins/Android/FirebaseCrashlytics.androidlib.meta rm -fr Plugins/iOS/Firebase rm -fr GeneratedLocalRepo/Firebase rm -fr Editor\ Default\ Resources/CrashlyticsSettings.asset rm -fr Editor\ Default\ Resources/CrashlyticsSettings.asset.meta rm -fr Firebase rm -fr Editor\ Default\ Resources rm -fr Plugins/Android/Firebase*
前バージョンが含まれてないか確認
$ grep FirebaseCppApp-11_8_0 ./Assets -r
もしあれば、色々出てくる。(crashlyticsがうまく更新されてない例)
Binary file .//GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/11.8.0/firebase-analytics-unity-11.8.0.aar matches Binary file .//GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/11.8.0/firebase-app-unity-11.8.0.aar matches Binary file .//GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/11.8.0/firebase-crashlytics-unity-11.8.0.aar matches Binary file .//GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-auth-unity/11.8.0/firebase-auth-unity-11.8.0.aar matches Binary file .//GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-functions-unity/11.8.0/firebase-functions-unity-11.8.0.aar matches Binary file .//GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-config-unity/11.8.0/firebase-config-unity-11.8.0.aar matches
削除した後は、プロジェクトを再起動すると良い。これは、確認すると以下ファイルの更新がされてなかった
- Assets/Plugins/Android/mainTemplate.gradle
- ProjectSettings/AndroidResolverDependencies.xml
compileSdkVersionのエラー
エラー詳細
A problem occurred configuring project ':launcher'. > com.android.builder.errors.EvalIssueException: compileSdkVersion is not specified. Please add it to build.gradle
Assets/Plugins/Android/mainTemplate.gradleを見るとcompileSdkVersionからcompileSdkになってるため
対策
BuildProfiles/PlayerSettings/Custom Main Gradle TemplateのチェックをoffにしてonにするとAssets/Plugins/Android/mainTemplate.gradleが更新されて、ビルドがうまくいくようになる。
DllNotFoundException: Unable to load DLL 'FirebaseCppApp-12_1_0'エラーが出る
エラー詳細
DllNotFoundException: Unable to load DLL 'FirebaseCppApp-12_1_0'. Tried the load the following dynamic libraries: Unable to load dynamic library 'FirebaseCppApp-12_1_0' because of 'Failed to open the requested dynamic library (0x06000000) dlerror() = dlopen failed: library "FirebaseCppApp-12_1_0" not found
以下ファイルはあるが、なぜかエラーになっている・・
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_1_0.dll
Assets/Firebase/Plugins/x86_64 以下を全削除して、もう一度インストールして、確認。→だめだった→Unityを新規で作って、アプリほかライブラリを全部入れ直したら、このエラーはなくなった。
RequestConfiguration.Builder()が存在しないエラー
エラー詳細
new RequestConfiguration.Builder()のBuilderが存在しません。
原因 AdMobの9.0からBuilder()のメソッドは削除されているため
公式:https://github.com/googleads/googleads-mobile-unity/releases
Removed RequestConfiguration.Builder. Use RequestConfiguration directly.
AdMobのversionを、一旦、8.7にすることで対応した。
"com.google.android.gms:play-services-measurement-api:22.0.2 collides with another value"エラーがでる場合
エラー詳細
The attribute property#android.adservices.AD_SERVICES_CONFIG@resource=@xml/gma_ad_services_config in com.google.android.gms:play-services-measurement-api:22.0.2 collides with another value
(See the Console for details) 多分firebaseとAdmobのplayservicesのバージョンが違うとかで、エラーが出てるのだと思う。なので、それぞれのバージョンの日時を確認して、同じような時期にデータバージョン同士で、入れればよいかも。
AdMobを8.7にしているので、Firebaseを11.8にした。→治らず・・
"AndroidManifest.xml, you can use the AGP Upgrade Assistant"エラーが出る時
エラー詳細
If you've specified the package attribute in the source AndroidManifest.xml, you can use the AGP Upgrade Assistant to migrate to the namespace value in the build file. Refer to
Assets/Plugins/Android/mainTemplate.gradle にnamespaceがなければ追加する
android { + namespace "com.unity3d.player" compileSdk **APIVERSION**
"This Android Gradle plugin (8.3.0) was tested up to compileSdk = 34."エラーが出る時
compileSdkを35とかにしてれば、compileSdkを、34に設定すればよい。
"CMakeLists.txt"エラーが出る時
エラー詳細
Android/Prj/IL2CPP/Gradle/unityLibrary/src/main/cpp/CMakeLists.txt release|arm64-v8a : com.google.prefab.api.NoMatchingLibraryException: No compatible library found for //games-frame-pacing/swappy. Rejected the following libraries: 118 actionable tasks: 2 executed, 116 up-to-date
Assets/Plugins/Android/mainTemplate.gradle
android { namespace "com.unity3d.player" + ndkPath "**NDKPATH**" + ndkVersion "**NDKVERSION**"
"BaseUnityGameActivityTheme) not found."エラーが出る時
対応策 Assets/Plugins/Android/AndroidManifest.xml の以下を削除
<activity android:name="com.unity3d.player.UnityPlayerGameActivity"> <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" /> <meta-data android:name="android.app.lib_name" android:value="game" /> </activity>
" AD_SERVICES_CONFIG"エラーが出る場合
エラー詳細
Attribute property#android.adservices.AD_SERVICES_CONFIG@resource value=(@xml/gma_ad_services_config) from [com.google.android.gms:play-services-ads-lite:22.6.0]
ProjectSettingsのAndoridのPlublishingSettingのCustomMainManifestにチェックを入れる。
Assets/Plugins/Android/AndroidManifest.xml に以下、propertyタグを、追加すると直る。
<manifest> <application> <property android:name="android.adservices.AD_SERVICES_CONFIG" android:resource="@xml/gma_ad_services_config" tools:replace="android:resource" /> </application> </manifest>
参考:https://stackoverflow.com/questions/78085458/manifest-merger-failed-with-agp-8-3-0
"minSdkVersion is less than or equal to targetSdkVersion."エラーがでる場合
エラー詳細
WARNING: minSdkVersion (24) is greater than targetSdkVersion (9) for variant "release". Please change the values such that minSdkVersion is less than or equal to targetSdkVersion.
BuildProfiles/PlayerSettingで、targetSdkVersionを、指定している場合でも、再度指定してみる。→治らず・・
"libunity.so"エラーがでる場合
エラー詳細
Configure project :unityLibrary Variant 'debug', will keep symbols in binaries for: 'libunity.so' 'libil2cpp.so' 'libmain.so'
プロジェクト直下のLibraryに3つlibunity.soがあったが、ここらへんが問題なのかも・・。→どれかのライブラリが、インストールしてるのだろうけど、一旦このバージョン、諦めたので、追加調査せず
Library/Bee/Android/Prj/IL2CPP/Gradle/unityLibrary/src/main/jniLibs/arm64-v8a/libunity.so Library/Bee/artifacts/Android/libunity/arm64-v8a/stripped/libunity.so Library/Bee/artifacts/Android/libunity/arm64-v8a/unstripped/libunity.so
↑のAD_SERVICES_CONFIGエラー時に、一緒にで出たが、AD_SERVICES_CONFIG側を解決したら、このエラー消えた。
FileProviderエラーが出る時
エラー詳細
java.lang.RuntimeException: Unable to get provider androidx.core.content.FileProvider: java.lang.ClassNotFoundException: Didn't find class "androidx.core.content.FileProvider"
下のminSdkVersionエラーの対応したところいつの間にか、エラーが消えてた。
minSdkVersionのエラーが出る時
> Configure project :unityLibrary:res.androidlib WARNING: minSdkVersion (24) is greater than targetSdkVersion (9) for variant "debug". Please change the values such that minSdkVersion is less than or equal to targetSdkVersion.
TargetAPILevelをautomaticから、APILevel~に、変えると直る。
BaseUnityGameActivityThemeのエラーが出る時
エラー詳細
Resource 'style/BaseUnityGameActivityTheme' not found in AndroidManifest.xml:73, (See the Console for details)
以下ファイルから以下のように一部を削除
Assets/Plugins/Android/AndroidManifest.xml
- <activity android:name="com.unity3d.player.UnityPlayerGameActivity" android:theme="@style/BaseUnityGameActivityTheme"> + <activity android:name="com.unity3d.player.UnityPlayerGameActivity">
AdMobで、"to find your app ID"エラーが出る時
****************************************************************************** * Invalid application ID. Follow instructions here: * https://googlemobileadssdk.page.link/admob-android-update-manifest * to find your app ID. * Google Ad Manager publishers should follow instructions here: * https://googlemobileadssdk.page.link/ad-manager-android-update-manifest. ******************************************************************************
解決策1
以下をMobileAds.Initializeを追加
Start() { MobileAds.Initialize(initStatus => { }); }
解決策2
AdMobのapplicationIdを新規で作ったら、他のapplicationIdを一旦入れてみて、エラーが消えるか確認する。 このパターンで、エラーが消えることはあった。