You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google AdMob点击全屏广告时崩溃问题求助

解决Google AdManager广告点击时ClassCastException崩溃问题

问题背景

使用以下依赖集成Google AdManager广告:

implementation 'com.google.android.gms:play-services-ads:22.1.0'

广告加载实现代码:

mAdView = new AdManagerAdView(getActivity());
adContainerView = view.findViewById(R.id.ad_view_container);
mAdView.setAdUnitId(adID);
request = new AdManagerAdRequest.Builder().build();
adSize = getAdSize();
// Step 4 - Set the adaptive ad size on the ad view.
mAdView.setAdSize(adSize);
adContainerView.addView(mAdView);
mAdView.loadAd(request);

点击部分广告时触发崩溃,崩溃日志如下:

Process: com.indiatoday.mobiletak, PID: 13897
java.lang.ClassCastException: $Proxy12 cannot be cast to com.android.webview.chromium.WebViewChromium
at com.android.webview.chromium.WebViewChromium.c(chromium-TrichromeWebViewGoogle.aab-stable-573506031:5)
at com.android.webview.chromium.N.handleMessage(chromium-TrichromeWebViewGoogle.aab-stable-573506031:44)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8057)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)

解决方案

  • 升级广告SDK版本
    该崩溃属于旧版SDK与部分WebView版本的兼容性问题,建议将play-services-ads升级至最新稳定版(如23.4.0),新版本会修复此类WebView相关兼容bug。修改依赖:
implementation 'com.google.android.gms:play-services-ads:23.4.0' // 替换为当前最新版本
  • 检查WebView状态
    确保设备上的Android System WebView应用为最新版本,可引导用户在应用商店或系统设置中更新。同时避免在应用内对WebView进行代理、Hook等操作,这类操作会破坏WebView内部结构,引发类型转换异常。

  • 规范AdView生命周期管理
    在Fragment/Activity的生命周期方法中正确处理AdView的销毁,避免内存泄漏导致异常:

@Override
public void onDestroy() {
    if (mAdView != null) {
        mAdView.destroy();
    }
    super.onDestroy();
}
  • 临时禁用硬件加速(Workaround)
    若升级SDK后问题仍存在,可尝试为AdView所在容器或Activity禁用硬件加速:
    在AndroidManifest.xml的对应Activity节点添加:
android:hardwareAccelerated="false"

或在代码中为广告容器设置:

adContainerView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

内容的提问来源于stack exchange,提问作者Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:12:54