Facebook unity sdk 无法在Android上运行Unity的Facebook SDK

Facebook unity sdk 无法在Android上运行Unity的Facebook SDK,facebook-unity-sdk,Facebook Unity Sdk,我无法在带有Unity 4.6.1p4的Android 5.0上使用FB SDK 6.1和6.2 for Unity 如果我只是按原样抓取包(直接尝试asset store和FB),它将在运行时崩溃,因为它找不到 com.facebook.android.R$Layout.class 此类位于bin/classes目录中(Unity似乎忽略了该目录),但不在classes.jar文件中 如果我删除classes.jar文件并从classes文件夹中的文件(“jar-cvf classes.jar

我无法在带有Unity 4.6.1p4的Android 5.0上使用FB SDK 6.1和6.2 for Unity

如果我只是按原样抓取包(直接尝试asset store和FB),它将在运行时崩溃,因为它找不到

com.facebook.android.R$Layout.class

此类位于bin/classes目录中(Unity似乎忽略了该目录),但不在classes.jar文件中

如果我删除classes.jar文件并从classes文件夹中的文件(“jar-cvf classes.jar.”在classes目录中)构建一个新的文件,我似乎没有遇到Layout.class问题,而是得到了一个空引用异常:

原因:java.lang.RuntimeException:无法恢复活动java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“void android.view.view.setVisibility(int)” 位于android.app.ActivityThread.performResumeActivity(ActivityThread.java:2951) 位于android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2982) 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365) 在android.app.ActivityThread.access$800(ActivityThread.java:144) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:135) 位于android.app.ActivityThread.main(ActivityThread.java:5221) 位于java.lang.reflect.Method.invoke(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

这对我来说毫无意义。Init似乎可以工作-它是在FB.Login期间崩溃的(在我调用Login和调用回调之间)

这应该是开箱即用的吗


(FWIW,此应用程序与旧版本的FB SDK一起使用)

此问题是由于从SDK文件夹中删除了原本为空的AndroidManifest.xml而导致的

我有一个复杂的构建过程,有许多不同的目标,因此我生成自己的最终清单,不希望Unity将其弄乱,因此我通常会删除SDK文件夹中的清单,以防止Unity合并它们

我有一堆其他Android SDK,这不是问题,但显然Unity使用清单的存在来决定APK中包含哪些文件(以及在哪里?),这会给一些SDK带来问题

奇怪的是,当我在APK中查看时,所有文件似乎都在那里(特别是布局),但它一定是在错误的位置和/或格式

无论如何,从中吸取的教训是:不要删除清单,即使你认为你不需要它:)