c# - 很多关于 Admob 广告的 Android Vitals 崩溃
问题描述
将 Unity 升级到 2018.3.0f2 版本后,与广告相关的错误数量急剧增加。将 Android 的构建系统更改为 Gradle(以前的内部版本现在已弃用)。异常示例:
java.lang.Error: FATAL EXCEPTION [Thread-326575]
Unity version : 2018.3.0f2
Device model : Xiaomi Redmi Note 5
Device fingerprint: xiaomi/whyred/whyred:8.1.0/OPM1.171019.011/V10.0.6.0.OEIMIFH:user/release-keys
Caused by
at com.unity3d.player.ReflectionHelper.nativeProxyInvoke (Native Method)
at com.unity3d.player.ReflectionHelper.a (Unknown Source)
at com.unity3d.player.ReflectionHelper$1.invoke (Unknown Source:6)
at java.lang.reflect.Proxy.invoke (Proxy.java:913)
at $Proxy9.onAdFailedToLoad (Unknown Source)
at com.google.unity.ads.RewardBasedVideo$1$1$2.run (RewardBasedVideo.java:89)
at java.lang.Thread.run (Thread.java:764)
代理号可能不一样:$Proxy9,$Proxy10,$Proxy12,$Proxy13 也有类似的错误,不过是针对购买商品的。
java.lang.Error: FATAL EXCEPTION [pool-2-thread-1]
Unity version : 2018.3.0f2
Device model : BQru BQru_BQru-5058
Device fingerprint: BQru/BQru-5058/BQru-5058:7.0/NRD90M/1494381105:user/release-keys
Caused by
at com.unity3d.player.ReflectionHelper.nativeProxyInvoke (Native Method)
at com.unity3d.player.ReflectionHelper.a (Unknown Source)
at com.unity3d.player.ReflectionHelper$1.invoke (Unknown Source)
at java.lang.reflect.Proxy.invoke (Proxy.java:813)
at $Proxy7.OnProductsRetrieved (Unknown Source)
at com.unity.purchasing.common.UnityPurchasing.OnProductsRetrieved (UnityPurchasing.java:24)
at com.unity.purchasing.googleplay.GooglePlayPurchasing.NotifyUnityOfProducts (GooglePlayPurchasing.java:572)
at com.unity.purchasing.googleplay.GooglePlayPurchasing.access$1000 (GooglePlayPurchasing.java:43)
at com.unity.purchasing.googleplay.GooglePlayPurchasing$5.onQueryInventoryFinished (GooglePlayPurchasing.java:531)
at com.unity.purchasing.googleplay.IabHelper$4.workWith (IabHelper.java:862)
at com.unity.purchasing.googleplay.BillingServiceManager$2.run (BillingServiceManager.java:146)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
at java.lang.Thread.run (Thread.java:761)
我使用文档中的代码,在过渡到新版本的 Unity 之前,一切正常,没有错误。
我尝试为 Unity 安装不同版本的 AdMob 插件、不同的解析器、在 Unity 中添加和删除服务。
现在在我的 Unity 2018.3.0f2 中:- API 最低级别:16 - API 目标级别:安装的最高级别(级别 28,为 27)- 脚本运行时版本:.NET 4.x(原为 3.5 - 现在已弃用)- Google 移动广告 Unity插件 v3.15.1
通过 SDK Manager 安装在系统中: - Android SDK Platform-Tools 28.0.1 - Android SDK Tools 26.1.1 - Google Play Services 版本 49
不幸的是,我不能在我的本地设备上重复这样的崩溃,它发生在大约 2% 的用户中,在 Android 5.0+ 上。
更新:我确信这个错误与插件的 AdMob 版本和“其他”有关。目前,我能够将错误数量减少 10-30 倍。我重新安装了 Windows 和所有软件,最后我离开了 AdMob 插件版本 3.14 和上面描述的其余软件。现在我有一个新的致命异常(示例如下),但对于 1000 名玩家发生 1-2 次,这是可以容忍的。
java.lang.Error: FATAL EXCEPTION [main]
Unity version : 2018.3.0f2
Device model : samsung SM-G570F
Device fingerprint: samsung/on5xeltejv/on5xelte:8.0.0/R16NW/G570FXXU1CRK1:user/release-keys
Caused by
at com.unity3d.player.ReflectionHelper.nativeProxyInvoke (Native Method)
at com.unity3d.player.ReflectionHelper.a (Unknown Source)
at com.unity3d.player.ReflectionHelper$1.invoke (Unknown Source:6)
at java.lang.reflect.Proxy.invoke (Proxy.java:913)
at $Proxy10.onAdFailedToLoad (Unknown Source)
at com.google.unity.ads.Interstitial$1$1.onAdFailedToLoad (Interstitial.java:75)
at com.google.android.gms.internal.ads.zzjf.onAdFailedToLoad (Unknown Source:2)
at com.google.android.gms.internal.ads.zzki.dispatchTransaction (Unknown Source:29)
at com.google.android.gms.internal.ads.zzek.onTransact (Unknown Source:22)
at android.os.Binder.transact (Binder.java:612)
at oe.b (com.google.android.gms.dynamite_adsdynamite@14799046@14.7.99 (040306-223214910):15)
at com.google.android.gms.ads.internal.client.ac.a (com.google.android.gms.dynamite_adsdynamite@14799046@14.7.99 (040306-223214910):6)
at com.google.android.gms.ads.internal.a.a (com.google.android.gms.dynamite_adsdynamite@14799046@14.7.99 (040306-223214910):335)
at com.google.android.gms.ads.internal.a.a (com.google.android.gms.dynamite_adsdynamite@14799046@14.7.99 (040306-223214910):331)
at com.google.android.gms.ads.internal.a.b (com.google.android.gms.dynamite_adsdynamite@14799046@14.7.99 (040306-223214910):140)
at com.google.android.gms.ads.internal.c.b (com.google.android.gms.dynamite_adsdynamite@14799046@14.7.99 (040306-223214910):44)
at com.google.android.gms.ads.internal.j.run (com.google.android.gms.dynamite_adsdynamite@14799046@14.7.99 (040306-223214910):2)
at android.os.Handler.handleCallback (Handler.java:789)
at android.os.Handler.dispatchMessage (Handler.java:98)
at ze.a (com.google.android.gms.dynamite_adsdynamite@14799046@14.7.99 (040306-223214910):5)
at com.google.android.gms.ads.internal.util.e.a (com.google.android.gms.dynamite_adsdynamite@14799046@14.7.99 (040306-223214910):5)
at ze.dispatchMessage (com.google.android.gms.dynamite_adsdynamite@14799046@14.7.99 (040306-223214910):4)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6942)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)
解决方案
推荐阅读
- angular - 所需的请求部分“文件”不存在 - Angular 4
- android - Places API 设置在 build.gradle 设置期间出错
- moodle - 在 Moodle Dashboard 中按类别在两个块中显示课程
- c# - 如何计算 C# 中的类属性?
- xml - XSD:将未知元素与必需元素组合
- c - 内存对齐与 CPU 利用率
- javascript - 用正则表达式 nodejs 替换不同的字符串
- reactjs - 动作可能没有未定义的“类型”属性。在反应?
- javascript - 我们可以触发 tabkey 事件以将光标下一个元素移动到 select2
- xamarin.android - FloatingActionButton 菜单在 Xamarin Android 的背景中显示