gpt4 book ai didi

显示奖励视频时 Admob 中的 java.lang.NullPointerException

转载 作者:行者123 更新时间:2023-11-30 01:36:10 25 4
gpt4 key购买 nike

在 Android 中,当我尝试在 Admob 中加载广告并且没有互联网连接时,代码到达 onRewardedVideoAdFailedToLoad() 并在一段时间后说 30 秒,应用程序强制关闭并出现下面提到的错误。

希望这不是我能处理的空指针异常。我猜它发生在 SDK 中。请让我知道如何解决这个问题。

代码

private void setRewardedVideo() {
rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
rewardedVideoAd.setUserId(REWARD);
AdRequest adRequest = new AdRequest.Builder().build();
rewardedVideoAd.loadAd(AD_UNIT_ID_REWARDED_VIDEO_AD, adRequest);

rewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
@Override
public void onRewardedVideoAdLoaded() {
System.out.println("onRewardedVideoAdLoaded()");
if (rewardedVideoAd.isLoaded()) {
rewardedVideoAd.show();
}
}

@Override
public void onRewardedVideoAdOpened() {
System.out.println("onRewardedVideoAdOpened()");

}

@Override
public void onRewardedVideoStarted() {
System.out.println("onRewardedVideoStarted()");

}

@Override
public void onRewardedVideoAdClosed() {
System.out.println("onRewardedVideoAdClosed()");

}

@Override
public void onRewarded(RewardItem rewardItem) {
System.out.println("onRewarded()");

}

@Override
public void onRewardedVideoAdLeftApplication() {
System.out.println("onRewardedVideoAdLeftApplication()");

}

@Override
public void onRewardedVideoAdFailedToLoad(int i) {
System.out.println("onRewardedVideoAdFailedToLoad()");

}
});
}

日志

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.ViewParent com.google.android.gms.ads.internal.au.getParent()' on a null object reference
at com.google.android.gms.ads.internal.a.b(SourceFile:513)
at com.google.android.gms.ads.internal.b.b(SourceFile:318)
at com.google.android.gms.ads.internal.a.c(SourceFile:520)
at com.google.android.gms.ads.internal.aq.run(SourceFile:64)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5296)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

最佳答案

确保用户在尝试加载广告之前已连接,AdMob 可能存在一些更深层次的问题,即使没有互联网也会强制执行此 NPE。

private void setRewardedVideo() {
if (!isNetworkAvailable()) {
// Log no internet
return;
}

rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
rewardedVideoAd.setUserId(REWARD);
....
}

在尝试使用 adMob 之前确保用户有互联网甚至可能是有意义的,因为他们的库中的某些东西导致了问题。参见 this answer为此。

关于显示奖励视频时 Admob 中的 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35086005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com