facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(DllNotFoundException: Unable to load DLL 'FirebaseCppApp-12_1_0'エラーが出る)
(合わせてほかもバージョンアップ)
 
(同じ利用者による、間の28版が非表示)
行1: 行1:
 +
=Unity側=
 +
 
==TMP_InputFieldのEditorの文字化けについて==
 
==TMP_InputFieldのEditorの文字化けについて==
 
TMProをImport TMP Essentialsするとなおる
 
TMProをImport TMP Essentialsするとなおる
行57: 行59:
 
* ProjectSettings/AndroidResolverDependencies.xml
 
* ProjectSettings/AndroidResolverDependencies.xml
  
 +
=ios側=
 +
エラー詳細
 +
error: accessing build database "Library/Developer/Xcode/DerivedData/Unity-iPhone-glynammnnqkwojedhubmfpcydqmk/Build/Intermediates.noindex/XCBuildData/build.db": database or disk is full
 +
 +
対応方法
 +
*pc再起動で治った。
 +
 +
=android側=
 
==compileSdkVersionのエラー==
 
==compileSdkVersionのエラー==
 
エラー詳細
 
エラー詳細
行95: 行105:
  
 
AdMobを8.7にしているので、Firebaseを11.8にした。→治らず・・
 
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がなければ追加する
 +
 +
<pre>
 +
android {
 +
+    namespace "com.unity3d.player"
 +
      compileSdk **APIVERSION**
 +
</pre>
 +
 +
=="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
 +
<pre>
 +
android {
 +
    namespace "com.unity3d.player"
 +
+    ndkPath "**NDKPATH**"
 +
+    ndkVersion "**NDKVERSION**"
 +
</pre>
 +
参考: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"エラーが出る場合==
 +
エラー詳細
 +
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タグを、追加すると直る。
 +
<pre>
 +
<manifest>
 +
    <application>
 +
        <property
 +
            android:name="android.adservices.AD_SERVICES_CONFIG"
 +
            android:resource="@xml/gma_ad_services_config"
 +
            tools:replace="android:resource" />
 +
    </application>
 +
</manifest>
 +
</pre>
 +
 +
参考:https://stackoverflow.com/questions/78085458/manifest-merger-failed-with-agp-8-3-0
  
 
=="minSdkVersion is less than or equal to targetSdkVersion."エラーがでる場合==
 
=="minSdkVersion is less than or equal to targetSdkVersion."エラーがでる場合==
行100: 行172:
 
  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.
 
  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を、指定している場合でも、再度指定してみる。→治らず・・
 
BuildProfiles/PlayerSettingで、targetSdkVersionを、指定している場合でも、再度指定してみる。→治らず・・
 +
 +
=="libunity.so"エラーがでる場合==
 +
エラー詳細
 +
<pre>
 +
Configure project :unityLibrary
 +
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>
 +
 +
↑のAD_SERVICES_CONFIGエラー時に、一緒にで出たが、AD_SERVICES_CONFIG側を解決したら、このエラー消えた。
 +
 +
==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年9月15日 (日) 21:46時点における最新版

Unity側

TMP_InputFieldのEditorの文字化けについて

TMProをImport TMP Essentialsするとなおる

合わせてほかもバージョンアップ

  • GoogleMobileAds-v9.2.0(v8.7.0から)
  • firebase_unity_sdk_12.1.0(11.8.0から)

以下でアンインストール対応して、インストールすると良いかも。

  • 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

ios側

エラー詳細

error: accessing build database "Library/Developer/Xcode/DerivedData/Unity-iPhone-glynammnnqkwojedhubmfpcydqmk/Build/Intermediates.noindex/XCBuildData/build.db": database or disk is full

対応方法

  • pc再起動で治った。

android側

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**"

参考: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 の以下を削除

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