Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

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機能が壊れ、リアルタイムデータベースプラグインがエディターとデスクトップで失敗します。

この問題の回避策はないため、バージョン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ユーザーガイド