Facebook SDK 11.0.0 导致 android 崩溃
Facebook sdk 11.0.0 cause crashes on android
环境
- Unity 编辑器版本:2019.4.30f1
- Unity SDK 版本:11.0.0
为了解决Unity在android上造成的崩溃问题,我将我的Unity从2019.4.29f1升级到2019.4.30f1。不幸的是这次我发现了一个新的崩溃问题。该问题的详细信息如下:
Caused by java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter args
at com.facebook.appevents.iap.InAppPurchaseBillingClientWrapper$BillingClientStateListenerWrapper.invoke(:12)
at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
at $Proxy2.onBillingServiceDisconnected()
at com.android.billingclient.api.zzah.onServiceDisconnected(com.android.billingclient:billing@@3.0.3:4)
at android.app.LoadedApk$ServiceDispatcher.doDeath(LoadedApk.java:1811)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1826)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:205)
at android.app.ActivityThread.main(ActivityThread.java:6991)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:884)
根据Firebase Crashlytics dashboard上提供的信息,所有的crash都发生在后台,而且大部分都发生在Android11。经过分析资料,好像crash发生在回调上onBillingServiceDisconnected 事件 (com.facebook.appevents.iap.InAppPurchaseBillingClientWrapper$BillingClientStateListenerWrapper.invoke)。由于我没有 Android 11 设备,因此无法重现此崩溃,我也不知道如何重现。现在onServiceDisconnected事件,大家有什么建议吗?
尝试从
更改 Facebook 依赖项中的依赖项
<androidPackage spec="com.facebook.android:facebook-core:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-applinks:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-login:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-share:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-gamingservices:[11.0, 12)" />
到
<androidPackage spec="com.facebook.android:facebook-core:[11.0, 11.3)" />
<androidPackage spec="com.facebook.android:facebook-applinks:[11.0, 11.3)" />
<androidPackage spec="com.facebook.android:facebook-login:[11.0, 11.3)" />
<androidPackage spec="com.facebook.android:facebook-share:[11.0, 11.3)" />
<androidPackage spec="com.facebook.android:facebook-gamingservices:[11.0, 11.3)" />
作为临时解决方案,它会起作用
根本原因是底层 facebook sdk 中的错误:https://github.com/facebook/facebook-android-sdk/issues/1019
降级到 facebook-login 11.2 可以解决这个问题。
环境
- Unity 编辑器版本:2019.4.30f1
- Unity SDK 版本:11.0.0
为了解决Unity在android上造成的崩溃问题,我将我的Unity从2019.4.29f1升级到2019.4.30f1。不幸的是这次我发现了一个新的崩溃问题。该问题的详细信息如下:
Caused by java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter args
at com.facebook.appevents.iap.InAppPurchaseBillingClientWrapper$BillingClientStateListenerWrapper.invoke(:12)
at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
at $Proxy2.onBillingServiceDisconnected()
at com.android.billingclient.api.zzah.onServiceDisconnected(com.android.billingclient:billing@@3.0.3:4)
at android.app.LoadedApk$ServiceDispatcher.doDeath(LoadedApk.java:1811)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1826)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:205)
at android.app.ActivityThread.main(ActivityThread.java:6991)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:884)
根据Firebase Crashlytics dashboard上提供的信息,所有的crash都发生在后台,而且大部分都发生在Android11。经过分析资料,好像crash发生在回调上onBillingServiceDisconnected 事件 (com.facebook.appevents.iap.InAppPurchaseBillingClientWrapper$BillingClientStateListenerWrapper.invoke)。由于我没有 Android 11 设备,因此无法重现此崩溃,我也不知道如何重现。现在onServiceDisconnected事件,大家有什么建议吗?
尝试从
更改 Facebook 依赖项中的依赖项<androidPackage spec="com.facebook.android:facebook-core:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-applinks:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-login:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-share:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-gamingservices:[11.0, 12)" />
到
<androidPackage spec="com.facebook.android:facebook-core:[11.0, 11.3)" />
<androidPackage spec="com.facebook.android:facebook-applinks:[11.0, 11.3)" />
<androidPackage spec="com.facebook.android:facebook-login:[11.0, 11.3)" />
<androidPackage spec="com.facebook.android:facebook-share:[11.0, 11.3)" />
<androidPackage spec="com.facebook.android:facebook-gamingservices:[11.0, 11.3)" />
作为临时解决方案,它会起作用
根本原因是底层 facebook sdk 中的错误:https://github.com/facebook/facebook-android-sdk/issues/1019
降级到 facebook-login 11.2 可以解决这个问题。