【发布时间】:2021-09-18 08:06:44
【问题描述】:
我正在开发 Ionic Capacitor 应用程序,我正在使用 capacitor community ad plugin,但我在 Android Studio 中收到以下错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference
我正在使用命令ionic capacitor run android -l --external 在安卓手机上运行该应用程序
错误是这样发生的:
- 应用会在欢迎页面上打开
- 应用显示横幅广告
- 我点击登录按钮
- 应用移除横幅广告
- 应用导航到登录页面
- 应用应显示横幅广告,但应用崩溃
欢迎页面(登录页面具有相同的生命周期方法和调用):
ionViewWillLeave(): void {
this.removeAd();
}
ionViewWillEnter(): void {
this.showAd();
}
private async showAd(): Promise<void> {
await this.admobService.showBanner();
}
private async removeAd(): Promise<void> {
await this.admobService.removeBanner();
}
Admob 服务:
public async showBanner(): Promise<void> {
AdMob.addListener(BannerAdPluginEvents.FailedToLoad, (info) => {
//console.log(info);
});
const options: BannerAdOptions = {
adId: 'hidden',
adSize: BannerAdSize.BANNER,
position: BannerAdPosition.TOP_CENTER,
margin: 0,
isTesting: true,
};
AdMob.showBanner(options);
}
public async removeBanner(): Promise<void> {
await AdMob.removeBanner();
}
Admob 服务是在 root 中提供的,也许是这种情况?但我不想在每个页面中都专门提供它
【问题讨论】:
标签: java android typescript ionic-framework