试图展示观众网络奖励视频时崩溃

问题描述:

在我们的游戏中,我们使用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已经解决?我找不到类似于此的任何错误。

+0

FWIW,上周五我开始获得同样的东西(FAN w/IronSource调解)。 –

+0

当我“移除”IronSource的Facebook适配器时,我的崩溃开始消失。仍在研究这一点,而且我并没有声称它是FB适配器。只是分享。 –

+0

如何在没有适配器的情况下播放视频? –

Android SDK target 26+改变了活动可以传递数据的方式 - 基本上它们限制了可以传递的数据量。

最终Facebook会发布更新的AudienceNetwork.aar文件来解决此问题。

然而,解决方法如下:

统一自动构建Android项目针对最新和最伟大SDK中提供。在这一点上,这很可能是SDK 26。 Unity编辑器中没有选项可以覆盖此设置,但可以选择覆盖最低SDK版本。

  1. 打开团结项目
  2. 转到文件 - >构建设置。确保选择了“Android”。
  3. 点击播放器设置,然后在右侧,单击以展开其他设置
  4. 请注意“最低API级别”。会有一些文字和数字,如Android 4.1'果冻豆'(API等级16)。在我的例子中,你想要的数字是。
  5. 保存并关闭您的项目。
  6. 导航到Unity项目的根目录,然后导航到Assets/Plugins/Android文件夹。
  7. 在那里编辑AndroidManifest.xml文件。

    第一行应该开始了:<?xml ...

    第二行应该是这样的<manifest xmlns:android...

    插入此行的第三行:

    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="25" />

    更换““与上面步骤4中所需的最低Sdk版本。将targetSdkVersion设置为或24,或者您想要的任何数字 - 它必须低于26。

  8. 删除Unity项目根目录中的Temp文件夹。
  9. 打开Unity并重建您的项目。

如果你团结不,则只需更新您的targetSdkVersion 25或更低 - 更新的AndroidManifest.xml在主项目文件夹。截至今天早上,Facebook的最新版本仍然显示4.25.0,如果您的目标是Android SDK 26,它仍然不起作用。