在我们的游戏中,我们使用Facebook SDK for Unity(v7.5.0),以及来自IronSource的奖励视频中介。
适用于Android的底层Facebook SDK是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
这是一个已经解决的已知错误吗?我找不到任何类似的错误。
答案 0 :(得分:2)
Android SDK目标26+改变了活动传递数据的方式 - 基本上它们限制了可以传递的数据量。
最终Facebook将发布更新的 AudienceNetwork.aar 文件以解决此问题。
但是,解决方法如下:
Unity会自动构建您的Android项目,定位最新且最好的SDK。目前很可能是SDK 26。 Unity Editor中没有选项可以覆盖此设置,但是有一个选项可以覆盖Minimum SDK Version。
在那里编辑 AndroidManifest.xml 文件。
第一行应该开始:<?xml ...
第二行应该是<manifest xmlns:android...
将THIS行插入第3行:
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="25" />
将“ 16 ”替换为您想要的最低Sdk版本,从上面的步骤4开始。将 targetSdkVersion 设置为 25 ,或24,或任何您想要的数字 - 它必须低于26。
如果您在Unity上不,只需将 targetSdkVersion 更新为25或更低 - 更新您的 AndroidManifest.xml 主项目文件夹。截至今天上午,Facebook的最新版仍然显示4.25.0,如果你定位Android SDK 26仍然无效。