facebook twitter hatena line email

「Unity/バージョンアップメモ/unity6000.0.12f1」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==TMP_InputFieldのEditorの文字化けについて== TMProをimportするとなおる ==合わせてほかもバージョンアップ== *GoogleMobileAds-v9.2.0(v8.7.0...」)
 
("libunity.so"エラーがでる場合)
(同じ利用者による、間の29版が非表示)
行1: 行1:
 +
(2024/8/3時点、iOSは問題なかったが、Androidビルドが、うまくいかなかったので、一旦、保留)
 +
 
==TMP_InputFieldのEditorの文字化けについて==
 
==TMP_InputFieldのEditorの文字化けについて==
TMProをimportするとなおる
+
TMProをImport TMP Essentialsするとなおる
  
 
==合わせてほかもバージョンアップ==
 
==合わせてほかもバージョンアップ==
 
*GoogleMobileAds-v9.2.0(v8.7.0から)
 
*GoogleMobileAds-v9.2.0(v8.7.0から)
 
*firebase_unity_sdk_12.1.0(11.8.0から)
 
*firebase_unity_sdk_12.1.0(11.8.0から)
 +
→結局versionアップしても、versionアップせずでも、うまくAndroidがビルドできなかった。
  
 
以下でアンインストール対応して、インストールすると良いかも。
 
以下でアンインストール対応して、インストールすると良いかも。
行15: 行18:
 
コマンドだとで消すときは、これ
 
コマンドだとで消すときは、これ
 
<pre>
 
<pre>
 +
cd Assets
 
rm -fr ExternalDependencyManager
 
rm -fr ExternalDependencyManager
 
rm -fr GoogleMobileAds/GoogleMobileAds*
 
rm -fr GoogleMobileAds/GoogleMobileAds*
行40: 行44:
 
==前バージョンが含まれてないか確認==
 
==前バージョンが含まれてないか確認==
 
<pre>
 
<pre>
$ grep FirebaseCppApp-11_5_0 ./Assets -r
+
$ grep FirebaseCppApp-11_8_0 ./Assets -r
 
</pre>
 
</pre>
 
もしあれば、色々出てくる。(crashlyticsがうまく更新されてない例)
 
もしあれば、色々出てくる。(crashlyticsがうまく更新されてない例)
 
<pre>
 
<pre>
Binary file .//GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/11.5.0/firebase-analytics-unity-11.5.0.aar matches
+
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.5.0/firebase-app-unity-11.5.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.5.0/firebase-crashlytics-unity-11.5.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.5.0/firebase-auth-unity-11.5.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.5.0/firebase-functions-unity-11.5.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.5.0/firebase-config-unity-11.5.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
 
</pre>
 
</pre>
 
削除した後は、プロジェクトを再起動すると良い。これは、確認すると以下ファイルの更新がされてなかった
 
削除した後は、プロジェクトを再起動すると良い。これは、確認すると以下ファイルの更新がされてなかった
行56: 行60:
 
* ProjectSettings/AndroidResolverDependencies.xml
 
* ProjectSettings/AndroidResolverDependencies.xml
  
=="The Crashlytics build ID is missing."エラーが出る場合==
+
==compileSdkVersionのエラー==
===その1===
+
 
エラー詳細
 
エラー詳細
  The Crashlytics build ID is missing. This occurs when the Crashlytics Gradle plugin is missing from your app's build configuration. Please review the Firebase Crashlytics onboarding instructions at https://firebase.google.com/docs/crashlytics/get-started?platform=android#add-plugin
+
  A problem occurred configuring project ':launcher'.
 +
> com.android.builder.errors.EvalIssueException: compileSdkVersion is not specified. Please add it to build.gradle
  
AndroidのPlayerSettingsで、InternalAccessをAutoからRequireへ変更すると直った。
+
Assets/Plugins/Android/mainTemplate.gradleを見るとcompileSdkVersionからcompileSdkになってるため
  
===その2===
+
対策
以下が抜けている場合は追加すると良いかも。
+
 
 +
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にした。→治らず・・
 +
 
 +
=="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"エラーがでる場合==
 +
エラー詳細
 
<pre>
 
<pre>
using Firebase.Crashlytics;
+
Configure project :unityLibrary
Crashlytics.ReportUncaughtExceptionsAsFatal = true;
+
Variant 'debug', will keep symbols in binaries for:
 +
  'libunity.so'
 +
  'libil2cpp.so'
 +
  'libmain.so'
 +
</pre>
 +
プロジェクト直下のLibraryに3つlibunity.soがあったが、ここらへんが問題なのかも・・。→どれかのライブラリが、インストーリしてるのだろうけど、一旦このバージョン、諦めたので、追加調査せず
 +
<pre>
 +
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
 
</pre>
 
</pre>
  
参考:
+
下のminSdkVersionエラー時に、一緒にで出たが、minSdkVersion側を解決したら、このエラー消えてたかも・・
https://firebase.google.com/docs/crashlytics/get-started?platform=unity&hl=ja#add-plugin
+
 
 +
==FileProviderエラーが出る時==
 +
エラー詳細
 +
<pre>
 +
java.lang.RuntimeException: Unable to get provider androidx.core.content.FileProvider: java.lang.ClassNotFoundException: Didn't find class "androidx.core.content.FileProvider"
 +
</pre>
 +
下のminSdkVersionエラーの対応したところいつの間にか、エラーが消えてた。
 +
 
 +
==minSdkVersionのエラーが出る時==
 +
<pre>
 +
> 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.
 +
</pre>
 +
TargetAPILevelをautomaticから、APILevel~に、変えると直る。
 +
 
 +
==BaseUnityGameActivityThemeのエラーが出る時==
 +
エラー詳細
 +
<pre>
 +
Resource 'style/BaseUnityGameActivityTheme' not found in AndroidManifest.xml:73, (See the Console for details)
 +
</pre>
 +
 
 +
以下ファイルから以下のように一部を削除
 +
 
 +
Assets/Plugins/Android/AndroidManifest.xml
 +
<pre>
 +
- <activity android:name="com.unity3d.player.UnityPlayerGameActivity" android:theme="@style/BaseUnityGameActivityTheme">
 +
+ <activity android:name="com.unity3d.player.UnityPlayerGameActivity">
 +
</pre>
 +
 
 +
==AdMobで、"to find your app ID"エラーが出る時==
 +
<pre>
 +
******************************************************************************
 +
* 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.
 +
******************************************************************************
 +
</pre>
 +
 
 +
===解決策1===
 +
以下をMobileAds.Initializeを追加
 +
<pre>
 +
Start() {
 +
    MobileAds.Initialize(initStatus => { });
 +
}
 +
</pre>
 +
===解決策2===
 +
AdMobのapplicationIdを新規で作ったら、他のapplicationIdを一旦入れてみて、エラーが消えるか確認する。
 +
このパターンで、エラーが消えることはあった。

2024年8月25日 (日) 03:52時点における版

(2024/8/3時点、iOSは問題なかったが、Androidビルドが、うまくいかなかったので、一旦、保留)

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にした。→治らず・・

"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

下のminSdkVersionエラー時に、一緒にで出たが、minSdkVersion側を解決したら、このエラー消えてたかも・・

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を一旦入れてみて、エラーが消えるか確認する。 このパターンで、エラーが消えることはあった。