当前位置: 首页 > 知识库问答 >
问题:

离子电容器Admob插件loadAd null对象引用

水铭晨
2023-03-14

我正在开发一个离子电容器应用程序,我正在使用电容器社区广告插件,但我在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

我正在android手机上运行该应用程序,使用命令“离子电容器运行android-l-外部”

错误是这样发生的:

  • 应用程序将在欢迎页面打开
  • 该应用程序显示横幅广告
  • 我单击登录按钮
  • 应用程序删除横幅广告
  • 应用程序导航到登录页面
  • 应用程序应显示横幅广告,但应用程序崩溃

欢迎页面(登录页面具有相同的生命周期方法和调用):

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中提供的,也许是这样?但我不想在每个页面中专门提供它

共有1个答案

翁钧
2023-03-14

可能,横幅在尝试显示时会被破坏。您可以尝试通过setTimeout(几秒钟检查这个想法)为this.showAd()添加延迟;调用:

ionViewWillEnter(): void {
    setTimeout(() => { this.showAd(); }, 3000);
}
 类似资料:
  • 我最近将我的旧Cordova iOS/Android项目迁移到了Caperaction,到目前为止我对此非常满意。但是,在尝试使用电容器文档Capable-Community/AdMob中推荐的AdMob插件时遇到了困难,因为该插件的文档只显示了ionic与angular或ionic与React的示例。我没有使用任何一个框架,因为这个项目是在这个生态系统之外开始的,所以我在看这个Ionic/Rea

  • 我在Ionic 6框架、Angular和Capacitor中为Android开发了一个应用程序 该应用程序从主页开始,当我单击登录按钮时,代码会在外部浏览器(例如Chrome或Firefox)中打开Microsoft链接。我进行登录,当成功时,它会将我发送回带有url的外部浏览器localhost:8100并且不会进一步。我想问是否有人可以帮助我在应用程序内部集成登录功能,而无需返回localho

  • 我正在用电容器来构建Ionic应用程序。以下是在android Studio中打开android应用程序时运行的命令。 在Android Studio中,我运行了构建并单击Run,然后在我的设备中看到错误。我见过很多帖子都有相同的错误,但是那些帖子都是用build发布的。就我而言,我没有使用Cordova来准备android应用程序。 下面是我的Ionic应用程序的一些摘录。

  • 因为我试图使用下面的命令通过电容器运行应用程序。 这是我遵循的URL。 为什么Ionic 4中的启动屏幕后卡住了白色屏幕? https://forum.ionicframework.com/t/white-screen-when-using-capacitor/183825/3 https://github.com/ionic-team/capacitor/issues/960 由于AMD处理器的

  • 事情是这样的: 我已经和离子电容进行了一对一的私聊,在云火商店里保存消息。到目前为止,它工作得很好。两个用户都可以发送和接收消息。另一方面,我使用FCM(Firebase Cloud Messaging)根据Capability的官方文档(https://capacitorjs.com/docs/guides/push-notifications-firebase)进行了推送通知,并且从Fireb

  • 先谢谢你,克里斯