首页 > 解决方案 > com.google.android.gms.ads.internal.util.aq.a 中的 NoClassDefFoundError 出现奇怪错误

问题描述

我的谷歌控制台上有一个奇怪的崩溃报告,似乎与谷歌广告模块有关。这是在 Google 控制台上报告的堆栈跟踪。

java.lang.NoClassDefFoundError: 
  at jp.b (com.google.android.gms.dynamite_adsdynamite@14799081@14.7.99 (100400-223214910):3)
  at jo.a (com.google.android.gms.dynamite_adsdynamite@14799081@14.7.99 (100400-223214910):3)
  at jq.a (com.google.android.gms.dynamite_adsdynamite@14799081@14.7.99 (100400-223214910):19)
  at com.google.android.gms.ads.internal.util.aq.a (com.google.android.gms.dynamite_adsdynamite@14799081@14.7.99 (100400-223214910):15)
  at iu.a (com.google.android.gms.dynamite_adsdynamite@14799081@14.7.99 (100400-223214910):19)
  at iu.run (com.google.android.gms.dynamite_adsdynamite@14799081@14.7.99 (100400-223214910):8)
Caused by: java.lang.ClassNotFoundException: 
  at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:134)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
  at ad.loadClass (com.google.android.gms.dynamite_dynamiteloader@14799081@14.7.99 (100400-223214910):4)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:312)

此异常似乎仅发生在 Android 9 设备上。而且我不知道为什么会发生这种情况。

我只想知道根据 android 9 是否有与此广告模块相关的任何更新。

标签: javaandroid

解决方案


尝试将您的目标 API 更改为 27,或者:

指定 Apache HTTP Legacy 库的要求 如果您的应用程序面向 API 级别 28 (Android 9.0) 或更高版本,则必须在 AndroidManifest.xml 的元素中包含以下声明。

  <uses-library
      android:name="org.apache.http.legacy"
      android:required="false" />

资料来源:

https://groups.google.com/forum/#!topic/google-admob-ads-sdk/K1HKru7RutY

https://developers.google.com/maps/documentation/android-sdk/config#specify_requirement_for_apache_http_legacy_library


推荐阅读