提问人:DenDen 提问时间:10/4/2022 更新时间:10/5/2022 访问量:591
Unity AdMob 奖励广告正常运行,但在 android 上出现 NullReferenceException
Unity AdMob reward ad runs normally, but gets a NullReferenceException on android
问:
我实现了 Admob 激励广告,它们在 Unity 中完美运行,但在我的 Android 设备上构建和运行游戏时,广告无法投放。
这是我运行游戏时似乎卡住的代码WatchAd(int ID)
rewardedAd.IsLoaded()
private RewardedAd rewardedAd;
public void Start()
{
MobileAds.Initialize(HandleInitComplete);
rewardPopUp.SetActive(false);
CreateAndLoadRewardedAd();
}
private void HandleInitComplete(GoogleMobileAds.Api.InitializationStatus status) =>
#if UNITY_ANDROID
appID = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
appID = "ca-app-pub-3940256099942544/5224354917";
#else
appID = "Probably Pc";
#endif
public void WatchAd(int ID)
{
Debug.Log("Ran WatchAD");
if (rewardedAd.IsLoaded())
{
Debug.Log("IsLoaded");
rewardedAd.Show();
rewardPopUp.SetActive(true);
AdType = ID;
}
else {
CreateAndLoadRewardedAd();
Debug.Log("Can't Load");}
}
public void CreateAndLoadRewardedAd()
{
rewardedAd = new RewardedAd(appID);
rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
AdRequest request = new AdRequest.Builder().Build();
rewardedAd.LoadAd(request);
}
public void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
switch (timesFailed)
{
case 0:
Invoke("CreateAndLoadRewardedAd()", 60);
break;
case 1:
Invoke("CreateAndLoadRewardedAd()", 120);
break;
default:
Invoke("CreateAndLoadRewardedAd()", 240);
break;
}
timesFailed++;
}
我尝试使用测试广告和我自己的 AdMob 广告 ID 执行此操作,并将我的设备添加为测试设备。 当我使用Unity运行它时,没有显示任何错误。
答:
0赞
Vionix
10/4/2022
#1
在这一部分中
#if UNITY_ANDROID
appID = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
appID = "ca-app-pub-3940256099942544/5224354917";
#else
appID = "Probably Pc";
#endif
它应该是广告单元 ID,而不是应用 ID。 如果您需要更多帮助,请查看此 Admob Unity 教程。
评论
0赞
DenDen
10/4/2022
将其更改为我的广告单元 ID,并将广告设置更改为我的 App ID,但出现相同的错误
0赞
Vionix
10/5/2022
在 Unity 中发布 Admob 设置窗口的更新代码和屏幕截图。只需在 Admob 网站上仔细检查您的 AD 单元 ID 和 App ID。
0赞
DenDen
10/5/2022
虽然变量被命名为 appID,但 ID 本身仍然是正确的,所以错误完全相同,但我确实通过强制解决解决了这个问题。
0赞
DenDen
10/5/2022
#2
通过强制解决解决了我的问题:
外部依赖项管理器> Android Resolver >强制解析> Assets
评论