Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

UnityとFirebaseのトラブルシューティングとFAQ

このページでは、Firebaseの使用時に発生する可能性のあるUnity固有の問題のヒントとトラブルシューティングを提供します。

他の課題がありますか、または以下に概説されている問題が表示されませんか?チェックアウトすることを確認してくださいメインFirebaseよくある質問をもっと汎Firebaseまたは製品固有のよくある質問のために。

Unity2017.x以降を使用する場合の.NETの互換性

Firebaseは、Unity2017以降の実験的なビルドオプションとして.NET4.xをサポートしています。 Firebaseプラグインはコンポーネントの使用解析SDKを.NETの以前のバージョンではいくつかの.NET 4.xのクラスを提供します。

したがって、FirebaseユニティSDKバージョン5.4.0以降のいずれか.NET 3.xまたは.NET 4.xのと互換性のあるプラグイン提供dotnet3dotnet4 FirebaseユニティSDKのディレクトリを。

プロジェクトで有効になっている.NETバージョンと互換性のないFirebaseプラグインをインポートすると、ParseSDKによって実装されている.NETFrameworkの一部のタイプからのコンパイルエラーが表示されます。

.NET 3.xを使用している場合、コンパイルエラーを解決するには:

  1. すべてのプラットフォームで次のDLLを削除または無効にします。
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. すべてのプラットフォームで次のDLLを有効にします。
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

.NET 4.xを使用している場合、コンパイルエラーを解決するには:

  1. すべてのプラットフォームで次のDLLを削除または無効にします。
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. すべてのプラットフォームで次のDLLを有効にします。
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

別のFirebaseプラグインをインポートする場合:

  • あなたのユニティプロジェクトでは、資産へのナビゲート>プロジェクトのための正しいDLLを有効にするサービスリゾルバ>バージョンハンドラ>アップデートを再生ます。

Unity 2017.1 .NET4.xプロジェクトでのIL2CPPコンパイル

Firebaseは、Unity2017以降の実験的なビルドオプションとして.NET4.xをサポートしています。 Firebaseプラグインはコンポーネントの使用解析SDKを.NETの以前のバージョンではいくつかの.NET 4.xのクラスを提供します。

したがって、FirebaseユニティSDKバージョン5.4.0以降では、(例えば、解析の実装フォワード解析タイプタイプフォワーディングDLLの提供System.Threading.Tasks.Task .NETフレームワークに)。残念ながら、Unity 2017.1.xに同梱されているIL2CPP(C#をC ++に変換するトランスパイラー)は、タイプ転送DLLを正しく処理しないため、次のようなビルドエラーが発生します。

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

現在、Unity2017.1で.NET4.x IL2CPPビルドエラーに利用できる回避策はありません。そのため、IL2CPPでコンパイルされたプロジェクトで.NET 4.xを使用するには、Unity2017.2以降にアップグレードする必要があります。

Unity2017.2ネットワーキング

Firebase Realtime Databaseは、.NETネットワークスタックを使用してTLSネットワーク接続を作成します。 Unity2017.2で.NET4.6を使用するとTLS機能が壊れ、エディターとデスクトップでRealtimeDatabaseプラグインが失敗します。

この問題の回避策はないため、バージョン2017.1や2017.3などの別のバージョンのUnityを使用する必要があります。

Unity2020にFirebaseAndroid設定ファイルがありません

Gradleのビルドをカスタマイズする機能を持っていないユニティのサポートバージョンにするために、Firebaseエディタツールが生成Assets/Plugins/Android/Firebase/res/values/google-services.xml Androidのリソースとしては、中に包装されますAndroidビルド。これにより、FirebaseSDKはそれを使用してデフォルトのFirebaseAppインスタンスを初期化できます。

ユニティ2020では、すべてのAndroidのリソースを持つディレクトリにある必要があります.androidlibサフィックス。あなたのプロジェクトが生成Firebase SDK使用している場合はAssets/Plugins/Android/Firebaseディレクトリを、に名前を変更Assets/Plugins/Android/Firebase.androidlib 。ことを確認してくださいそれが含まれているAndroidManifest.xmlproject.propertiesおよびres/values/google-services.xml

Androidアプリの構築中のシングルデックスの問題

Androidアプリのビルド中に、単一のdexファイルを持つことに関連するビルドエラーが発生する場合があります。プロジェクトがGradleビルドシステムを使用するように構成されている場合、エラーメッセージは次のようになります。

Cannot fit requested classes in a single dex file.

Dalvik実行可能( .dex )ファイルは、クラス定義とAndroidのアプリケーション(のためにそれに関連する付属データのセットを保持するために使用され.apk )。単一のdexファイルは、65,536個のメソッドへの参照に制限されています。プロジェクト内のすべてのAndroidライブラリのメソッドの総数がこの制限を超えると、ビルドは失敗します。

Unityが導入縮小化を単一DEXファイルで参照される方法の合計数を減らすことができ、未使用のコードを取り除くために(ユニティのいくつかのバージョンで、または他のツール)ProGuardのを使用する、2017.2で。オプションはPlayer設定]> [アンドロイド]> [公開設定]> [縮小化で見つけることができます。 Unityのバージョンによってオプションが異なる場合があるため、Unityの公式ドキュメントを参照してください。

参照されるメソッドの数が依然として限界を超えた場合、別のオプションが有効であるmultidex 。 Unityでこれを実現する方法は複数あります。

  • 場合はCustom Gradle TemplatePlayer Settings有効になっている、変更mainTemplate.gradle
  • エクスポートしたプロジェクトをビルドするには、Android Studioを使用する場合は、モジュールレベルの修正build.gradleファイルを。

詳細はで見つけることができmultidexユーザーガイド

Unity2017およびUnity2018(Firebase Unity SDK 8.0.0以降)でのAndroidビルドのJava8サポートと脱糖

そのすべてのAndroidライブラリのための2021年5月には(Firebase BOM v28.0.0)、Firebase無効脱糖(参照リリースノートを)。 Firebase Unity SDK(8.0.0以降)を使用してAndroidアプリをビルドすると、次のビルドエラーが表示される場合があります。

> Error while dexing.
 The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle

この変更は、Unity2017およびUnity2018のAndroidビルドにのみ影響します。ユニティの新しいバージョンが追加compileOptions Gradleのビルドファイルにデフォルトでブロックを。 Unity2017およびUnity2018でこのビルドエラーを修正するには、次のいずれかを実行します。

  • 追加compileOptionsあなたのGradleテンプレートにブロックを:

    1. 使用Gradleビルドシステムとして。
    2. 有効Custom Gradle TemplatePlayer Settings
    3. 次の行を追加しmainTemplate.gradle (またはモジュールレベルのbuild.gradleのAndroid Studioのプロジェクトをエクスポートする場合):

      android {
          compileOptions {
              sourceCompatibility 1.8
              targetCompatibility 1.8
          }
      }
      
  • または、AndroidプロジェクトのminSdkVersionを26以上に増やします。

参照して脱糖ビルドの失敗- Androidのトラブルシューティング