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

升级Firebase Ads库后Android Studio无法找到InterstitialAd如何修复

问题根本原因

Google Mobile Ads SDK从20.0.0版本开始重构了插屏广告的API,废弃了原来的com.google.android.gms.ads.InterstitialAd类,所以升级到20.1.0版本后会找不到该类。

修复方案

1. 替换插屏广告导入路径

新版本插屏广告类移动到了独立的子包下,先删除旧的导入语句,替换为新路径:

import com.google.android.gms.ads.interstitial.InterstitialAd;

注意:新版本已经禁止直接通过new InterstitialAd()实例化插屏广告,原有实例化代码必须全部重构。

2. 重构插屏广告加载、展示逻辑

新版本需要通过静态的InterstitialAd.load()方法异步加载广告,参考示例如下:

Java 示例

import com.google.android.gms.ads.interstitial.InterstitialAd;
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.LoadAdError;

// 全局声明插屏广告实例
private InterstitialAd mInterstitialAd;

// 加载插屏广告逻辑
AdRequest adRequest = new AdRequest.Builder().build();
InterstitialAd.load(this,"你的插屏广告单元ID", adRequest, new InterstitialAdLoadCallback() {
    @Override
    public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
        // 加载成功后缓存实例
        mInterstitialAd = interstitialAd;
    }

    @Override
    public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        // 加载失败清空实例
        mInterstitialAd = null;
    }
});

// 展示插屏广告逻辑
if (mInterstitialAd != null) {
    mInterstitialAd.show(YourCurrentActivity.this);
} else {
    Log.d("Ads", "插屏广告暂未加载完成");
}

Kotlin 示例

import com.google.android.gms.ads.interstitial.InterstitialAd
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.LoadAdError

// 全局声明插屏广告实例
private var mInterstitialAd: InterstitialAd? = null

// 加载插屏广告逻辑
val adRequest = AdRequest.Builder().build()
InterstitialAd.load(this,"你的插屏广告单元ID", adRequest, object : InterstitialAdLoadCallback() {
    override fun onAdLoaded(interstitialAd: InterstitialAd) {
        mInterstitialAd = interstitialAd
    }

    override fun onAdFailedToLoad(loadAdError: LoadAdError) {
        mInterstitialAd = null
    }
})

// 展示插屏广告逻辑
mInterstitialAd?.show(this@YourCurrentActivity) ?: run {
    Log.d("Ads", "插屏广告暂未加载完成")
}

3. 原生广告适配说明

20.1.0版本的原生广告API仅做了包路径调整,核心逻辑变动不大,只需把原有导入语句替换为新包路径下的对应类即可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 15:36:03