Facebook-sdk-for-unity: Android上的初始化错误

创建于 2017-10-11  ·  4评论  ·  资料来源: facebook/facebook-sdk-for-unity

你好,

我正在尝试将 Facebook SDK 集成到我的 Unity 游戏中,但初始化失败。 我正在使用 SDK 版本 7.8,因为较新的版本使我的游戏超过了 64K 方法限制,并且我不想让它成为多 dex。 这是我在 Android Logcat 中看到的:
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: 初始化({"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/? 我/艺术:在布尔 com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
10-10 18:40:25.532 11528-11624/? I/art: at boolean com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer) ((null):-1)
10-10 18:40:25.532 11528-11624/? 我/艺术:在布尔 com.unity3d.player.UnityPlayer$c$1.handleMessage(android.os.Message) ((null):-1)
10-10 18:40:25.532 11528-11624/? 我/艺术:在 void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
10-10 18:40:25.532 11528-11624/? 我/艺术:在 void android.os.Looper.loop() (Looper.java:154)
10-10 18:40:25.532 11528-11624/? 我/艺术:在 void com.unity3d.player.UnityPlayer$c.run() ((null):-1)
10-10 18:40:25.532 11528-11624/? 我/艺术:引起:java.lang.ClassNotFoundException:android.support.v4.app.BaseFragmentActivityApi16
10-10 18:40:25.532 11528-11624/? 我/艺术:在 java.lang.Class java.lang.VMClassLoader.findLoadedClass!(java.lang.ClassLoader, java.lang.String) (VMClassLoader.java:-2)
10-10 18:40:25.532 11528-11624/? 我/艺术:在 java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) (ClassLoader.java:742)
10-10 18:40:25.532 11528-11624/? 我/艺术:在 java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:362)
10-10 18:40:25.532 11528-11624/? 我/艺术:在 java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
10-10 18:40:25.532 11528-11624/? 我/艺术:在布尔 com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
10-10 18:40:25.532 11528-11624/? I/art: at boolean com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer) ((null):-1)
10-10 18:40:25.532 11528-11624/? 我/艺术:在布尔 com.unity3d.player.UnityPlayer$c$1.handleMessage(android.os.Message) ((null):-1)
10-10 18:40:25.532 11528-11624/? 我/艺术:在 void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
10-10 18:40:25.532 11528-11624/? 我/艺术:在 void android.os.Looper.loop() (Looper.java:154)
10-10 18:40:25.532 11528-11624/? 我/艺术:在 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/? 我/艺术:在布尔 com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
10-10 18:40:25.532 11528-11624/? I/art: at boolean com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer) ((null):-1)
10-10 18:40:25.532 11528-11624/? 我/艺术:在布尔 com.unity3d.player.UnityPlayer$c$1.handleMessage(android.os.Message) ((null):-1)
10-10 18:40:25.533 11528-11624/? 我/艺术:在 void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
10-10 18:40:25.533 11528-11624/? 我/艺术:在 void android.os.Looper.loop() (Looper.java:154)
10-10 18:40:25.533 11528-11624/? 我/艺术:在 void com.unity3d.player.UnityPlayer$c.run() ((null):-1)
10-10 18:40:25.533 11528-11624/? 我/艺术:引起:java.lang.ClassNotFoundException:android.support.v4.app.BaseFragmentActivityApi16
10-10 18:40:25.533 11528-11624/? 我/艺术:在 java.lang.Class java.lang.VMClassLoader.findLoadedClass!(java.lang.ClassLoader, java.lang.String) (VMClassLoader.java:-2)
10-10 18:40:25.533 11528-11624/? 我/艺术:在 java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) (ClassLoader.java:742)
10-10 18:40:25.533 11528-11624/? 我/艺术:在 java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:362)
10-10 18:40:25.533 11528-11624/? 我/艺术:在 java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
10-10 18:40:25.533 11528-11624/? 我/艺术:在布尔 com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
10-10 18:40:25.533 11528-11624/? I/art: at boolean com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer) ((null):-1)
10-10 18:40:25.533 11528-11624/? 我/艺术:在布尔 com.unity3d.player.UnityPlayer$c$1.handleMessage(android.os.Message) ((null):-1)
10-10 18:40:25.533 11528-11624/? 我/艺术:在 void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
10-10 18:40:25.533 11528-11624/? 我/艺术:在 void android.os.Looper.loop() (Looper.java:154)
10-10 18:40:25.533 11528-11624/? 我/艺术:在 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 你拯救了我的一天。 我在本机反应中遇到了同样的错误。 只有您的解决方案有效。

@sp-jordi-vilalta 感谢您的提示。 你能详细说明你是怎么做到的吗? 我现在有同样的问题。 提前致谢

@GregLukosek我不记得完整的堆栈跟踪,但最后它显示了真正缺失的类,我认为它来自 android.arch。*
最近的 Android 项目应该使用 maven/gradle 管理他们的 Android 依赖项,但我不知道为 Unity 自动执行此操作的具体细节,所以我只是按照https://developer.android.com/reference/android/arch中的文档进行操作

此页面是否有帮助?
0 / 5 - 0 等级