试图展示观众网络奖励视频时崩溃
问题描述:
在我们的游戏中,我们使用Facebook SDK for Unity(v7.5.0)以及IronSource的奖励视频中介。试图展示观众网络奖励视频时崩溃
底层的Facebook SDK for Android是v4.11.0。
当试图表现出奖励视频,我们的游戏崩溃与此异常:
E/JavaBinder(1172): !!! FAILED BINDER TRANSACTION !!! (parcel size = 521496)
W/ActivityManager(1172): Exception when starting activity com.moonactive.coinmaster/com.facebook.ads.AudienceNetworkActivity
W/ActivityManager(1172): android.os.TransactionTooLargeException: data parcel size 521496 bytes
W/ActivityManager(1172): at android.os.BinderProxy.transactNative(Native Method)
W/ActivityManager(1172): at android.os.BinderProxy.transact(Binder.java:503)
W/ActivityManager(1172): at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:1088)
W/ActivityManager(1172): at com.android.server.am.ActivityStackSupervisor.realStartActivityLocked(ActivityStackSupervisor.java:2540)
W/ActivityManager(1172): at com.android.server.am.ActivityStackSupervisor.startSpecificActivityLocked(ActivityStackSupervisor.java:2661)
W/ActivityManager(1172): at com.android.server.am.ActivityStack.resumeTopActivityInnerLocked(ActivityStack.java:3493)
W/ActivityManager(1172): at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:2613)
W/ActivityManager(1172): at com.android.server.am.ActivityStackSupervisor.resumeTopActivitiesLocked(ActivityStackSupervisor.java:5060)
W/ActivityManager(1172): at com.android.server.am.ActivityStack.completePauseLocked(ActivityStack.java:1687)
W/ActivityManager(1172): at com.android.server.am.ActivityStack.completePauseLocked(ActivityStack.java:1552)
W/ActivityManager(1172): at com.android.server.am.ActivityStack.activityPausedLocked(ActivityStack.java:1474)
W/ActivityManager(1172): at com.android.server.am.ActivityManagerService.activityPaused(ActivityManagerService.java:10204)
W/ActivityManager(1172): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:547)
W/ActivityManager(1172): at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:4014)
W/ActivityManager(1172): at android.os.Binder.execTransact(Binder.java:453)
D/ActivityManager(1172): isAutoRunBlockedApp:: com.moonactive.coinmaster, Auto Run ON
W/ActivityManager(1172): Force removing ActivityRecord{6a0b73e u0 com.moonactive.coinmaster/com.moon.coinmaster.android.GameActivity t756}: app died, no saved state
这是一个已知的bug已经解决?我找不到类似于此的任何错误。
答
Android SDK target 26+改变了活动可以传递数据的方式 - 基本上它们限制了可以传递的数据量。
最终Facebook会发布更新的AudienceNetwork.aar文件来解决此问题。
然而,解决方法如下:
统一自动构建Android项目针对最新和最伟大SDK中提供。在这一点上,这很可能是SDK 26。 Unity编辑器中没有选项可以覆盖此设置,但可以选择覆盖最低SDK版本。
- 打开团结项目
- 转到文件 - >构建设置。确保选择了“Android”。
- 点击播放器设置,然后在右侧,单击以展开其他设置。
- 请注意“最低API级别”。会有一些文字和数字,如Android 4.1'果冻豆'(API等级16)。在我的例子中,你想要的数字是。
- 保存并关闭您的项目。
- 导航到Unity项目的根目录,然后导航到Assets/Plugins/Android文件夹。
-
在那里编辑AndroidManifest.xml文件。
第一行应该开始了:
<?xml ...
第二行应该是这样的
<manifest xmlns:android...
插入此行的第三行:
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="25" />
更换““与上面步骤4中所需的最低Sdk版本。将targetSdkVersion设置为或24,或者您想要的任何数字 - 它必须低于26。
- 删除Unity项目根目录中的Temp文件夹。
- 打开Unity并重建您的项目。
如果你团结不,则只需更新您的targetSdkVersion 25或更低 - 更新的AndroidManifest.xml在主项目文件夹。截至今天早上,Facebook的最新版本仍然显示4.25.0,如果您的目标是Android SDK 26,它仍然不起作用。
FWIW,上周五我开始获得同样的东西(FAN w/IronSource调解)。 –
当我“移除”IronSource的Facebook适配器时,我的崩溃开始消失。仍在研究这一点,而且我并没有声称它是FB适配器。只是分享。 –
如何在没有适配器的情况下播放视频? –