升级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
相关产品推荐
相关产品推荐

