我无法在Android 5.0和Unity 4.6.1p4上将Unity SDK 6.1和6.2用于Unity。
如果我只是按原样抓取包(直接尝试资产存储和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)'在null对象引用上 在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) at java.lang.reflect.Method.invoke(Native Method) 在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)
这对我毫无意义。 FB.Init似乎有效 - 它在FB.Login期间崩溃(在我之间调用Login和我的回调被调用)。
这应该只是开箱即用吗?
(FWIW,此应用程序适用于较旧版本的FB SDK)
答案 0 :(得分:0)
此问题是由从SDK文件夹中删除否则为空的AndroidManifest.xml引起的。
我有一个复杂的构建过程,有许多不同的目标,所以我生成了自己的最终清单,并且不希望Unity搞乱它,所以我通常删除SDK文件夹中的那些以防止Unity合并它们。
我有一堆其他Android SDK,这不是问题,但显然Unity使用清单的存在来决定哪些文件包含在APK中(以及哪里?),这会导致某些SDK出现问题。
奇怪的是,当我查看APK时,所有文件似乎都在那里(特别是布局),但它一定是在错误的位置和/或格式。
无论如何,经验教训:即使你不认为你需要它,也不要删除清单:)