android - Android 上统一原生广告中的 IncompatibleClassChangeError
问题描述
我们不断收到有关 Google 新引入的统一原生广告的错误,这是文档链接。至少 0.2% 的错误来自这种情况,所以它实际上很重要,我认为这也不是 SDK 中的错误,因为我没有发现任何关于它的问题或讨论。文档中也没有任何关于此的说明。这是堆栈跟踪:
Fatal Exception: java.lang.IncompatibleClassChangeError: Class 'com.google.android.gms.ads.internal.client.m' does not implement interface 'com.google.android.gms.ads.internal.util.f' in call to 'void com.google.android.gms.ads.internal.util.f.a(java.lang.String, java.lang.String, boolean)' (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)
at com.google.android.gms.ads.nonagon.ad.nativead.bb.run(Unknown Source:10)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
现在,让我来介绍一些关于它的细节,因为我不能分享任何关于它的源代码:
- 仅具有 API 22的设备会引发此异常。
- 我们的应用程序使用 proguard,它没有关于保留原生广告类别的特定设置。(我认为这不仅仅是特定的 API 错误造成的问题,而且 SDK 本身已经被混淆了。)
- 我们在应用程序类中加载广告,并在相关屏幕打开时几乎立即显示它们(它通常有 150 毫秒的延迟。)
有没有人面临同样的问题?或者你能建议解决这种错误的方法吗?任何帮助表示赞赏,谢谢。
解决方案
应该是SDK的问题。很多人都谈到了这一点。谷歌团队还没有解决它。点击这里查看详细信息。