Facebook-sdk-for-unity: Androidでの初期化エラー

作成日 2017年10月11日  ·  4コメント  ·  ソース: facebook/facebook-sdk-for-unity

こんにちは、

Facebook SDKをUnityゲームに統合しようとしていますが、初期化に失敗します。 SDKバージョン7.8を使用しているのは、新しいバージョンではゲームが64Kメソッドの制限を超えており、マルチデックスにしたくないためです。 これは私がAndroidLogcatで見るものです:
10-10 18:40:25.495 11528-11624 /? V / com.facebook.unity.FB:SetUserAgentSuffix(Unity.7.8.0)
10-10 18:40:25.522 11528-11624 /? V / com.facebook.unity.FB:Init({"appId": "842765265887515"})
10-10 18:40:25.532 11528-11624 /? I / art:以前に失敗したクラスjava.lang.Classでの再初期化を拒否します:java.lang.NoClassDefFoundError:失敗した解決:Landroid / support / v4 / app / BaseFragmentActivityApi16;
10-10 18:40:25.532 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer.nativeRender()((null):-2)
10-10 18:40:25.532 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer)((null):-1)
10-10 18:40:25.532 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer $ c $ 1.handleMessage(android.os.Message)((null):-1)
10-10 18:40:25.532 11528-11624 /? I / art:at void android.os.Handler.dispatchMessage(android.os.Message)(Handler.java:98)
10-10 18:40:25.532 11528-11624 /? I / art:at void android.os.Looper.loop()(Looper.java:154)
10-10 18:40:25.532 11528-11624 /? I / art:at void com.unity3d.player.UnityPlayer $ c.run()((null):-1)
10-10 18:40:25.532 11528-11624 /? I / art:原因:java.lang.ClassNotFoundException:android.support.v4.app.BaseFragmentActivityApi16
10-10 18:40:25.532 11528-11624 /? I / art:at java.lang.Class java.lang.VMClassLoader.findLoadedClass!(java.lang.ClassLoader、java.lang.String)(VMClassLoader.java:-2)
10-10 18:40:25.532 11528-11624 /? I / art:java.lang.Classでjava.lang.ClassLoader.findLoadedClass(java.lang.String)(ClassLoader.java:742)
10-10 18:40:25.532 11528-11624 /? I / art:java.lang.Classでjava.lang.ClassLoader.loadClass(java.lang.String、boolean)(ClassLoader.java:362)
10-10 18:40:25.532 11528-11624 /? I / art:java.lang.Classでjava.lang.ClassLoader.loadClass(java.lang.String)(ClassLoader.java:312)
10-10 18:40:25.532 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer.nativeRender()((null):-2)
10-10 18:40:25.532 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer)((null):-1)
10-10 18:40:25.532 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer $ c $ 1.handleMessage(android.os.Message)((null):-1)
10-10 18:40:25.532 11528-11624 /? I / art:at void android.os.Handler.dispatchMessage(android.os.Message)(Handler.java:98)
10-10 18:40:25.532 11528-11624 /? I / art:at void android.os.Looper.loop()(Looper.java:154)
10-10 18:40:25.532 11528-11624 /? I / art:at void com.unity3d.player.UnityPlayer $ c.run()((null):-1)
10-10 18:40:25.532 11528-11624 /? I / art:以前に失敗したクラスjava.lang.Classでの再初期化を拒否します:java.lang.NoClassDefFoundError:失敗した解決:Landroid / support / v4 / app / BaseFragmentActivityApi16;
10-10 18:40:25.532 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer.nativeRender()((null):-2)
10-10 18:40:25.532 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer)((null):-1)
10-10 18:40:25.532 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer $ c $ 1.handleMessage(android.os.Message)((null):-1)
10-10 18:40:25.533 11528-11624 /? I / art:at void android.os.Handler.dispatchMessage(android.os.Message)(Handler.java:98)
10-10 18:40:25.533 11528-11624 /? I / art:at void android.os.Looper.loop()(Looper.java:154)
10-10 18:40:25.533 11528-11624 /? I / art:at void com.unity3d.player.UnityPlayer $ c.run()((null):-1)
10-10 18:40:25.533 11528-11624 /? I / art:原因:java.lang.ClassNotFoundException:android.support.v4.app.BaseFragmentActivityApi16
10-10 18:40:25.533 11528-11624 /? I / art:at java.lang.Class java.lang.VMClassLoader.findLoadedClass!(java.lang.ClassLoader、java.lang.String)(VMClassLoader.java:-2)
10-10 18:40:25.533 11528-11624 /? I / art:java.lang.Classでjava.lang.ClassLoader.findLoadedClass(java.lang.String)(ClassLoader.java:742)
10-10 18:40:25.533 11528-11624 /? I / art:java.lang.Classでjava.lang.ClassLoader.loadClass(java.lang.String、boolean)(ClassLoader.java:362)
10-10 18:40:25.533 11528-11624 /? I / art:java.lang.Classでjava.lang.ClassLoader.loadClass(java.lang.String)(ClassLoader.java:312)
10-10 18:40:25.533 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer.nativeRender()((null):-2)
10-10 18:40:25.533 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer)((null):-1)
10-10 18:40:25.533 11528-11624 /? I / art:ブール値com.unity3d.player.UnityPlayer $ c $ 1.handleMessage(android.os.Message)((null):-1)
10-10 18:40:25.533 11528-11624 /? I / art:at void android.os.Handler.dispatchMessage(android.os.Message)(Handler.java:98)
10-10 18:40:25.533 11528-11624 /? I / art:at void android.os.Looper.loop()(Looper.java:154)
10-10 18:40:25.533 11528-11624 /? I / art:at void com.unity3d.player.UnityPlayer $ c.run()((null):-1)
10-10 18:40:25.609 11528-11624 /? E / Unity:AndroidJavaException:java.lang.NoClassDefFoundError:失敗した解決:Lcom / facebook / FacebookActivity;

ここで何が起こっているのかについて何か考えはありますか?

ありがとう。

最も参考になるコメント

同様のスタックトレースがありましたが、そこで終了しませんでした。最後までスクロールすると、android.archから一部のクラスを読み込めなかったことが最終的な原因であることがわかりました。 調査の結果、これはサポートライブラリ(https://developer.android.com/topic/libraries/support-library/revisions.html#26-1-0)のリリース26.1.0が原因であることがわかりました。 「Androidアーキテクチャコンポーネント」の依存関係。 それらのライブラリを追加した後、それは機能しました。

全てのコメント4件

同様のスタックトレースがありましたが、そこで終了しませんでした。最後までスクロールすると、android.archから一部のクラスを読み込めなかったことが最終的な原因であることがわかりました。 調査の結果、これはサポートライブラリ(https://developer.android.com/topic/libraries/support-library/revisions.html#26-1-0)のリリース26.1.0が原因であることがわかりました。 「Androidアーキテクチャコンポーネント」の依存関係。 それらのライブラリを追加した後、それは機能しました。

@ sp-jordi-vilaltaあなたは私の日を救った。 私はreactnativeで同じエラーに直面しました。 あなたのソリューションだけが機能しました。

@ sp-jordi-vilaltaヒントをありがとう。 どうやってそれをしたのか詳しく教えていただけますか? 私は今同じ問題を抱えています。 前もって感謝します

@GregLukosek完全なスタックトレースを覚えていませんが、最終的には実際に欠落しているクラスが表示され、android.archからのものだったと思います。*
最近のAndroidプロジェクトは、maven / gradleを使用してAndroidの依存関係を管理する必要がありますが、Unityでこれを自動化するための詳細がわからないため、 https://developer.android.com/reference/android/archのドキュメントに従いました。

このページは役に立ちましたか?
0 / 5 - 0 評価