我已尝试为我的应用复制https://forums.xamarin.com/discussion/66452/xamarin-admob-rewardedvideoad,但无法添加RewardedVideoAdListener 每一个帮助将不胜感激
答案 0 :(得分:0)
您的类似乎是从AdsGoogle.Droid命名空间中的类或接口派生的,而您要链接的示例正在使用Android.GMS命名空间中的类或接口。这表明您正在尝试使用其他产品的教程来与Google Ads集成吗?您收到的错误消息表明,编译器不知道如何在该类的Google(您的类)的AdsGoogle.Droid版本与该类的Android.GMS版本(所期望的类类型)之间进行转换。>
为使问题更清楚,只要两个类位于不同的命名空间中,就可以使用相同的名称。页面顶部的using语句用于告诉编译器要使用哪个版本的类。如果它可能属于任何一个,则必须声明完整的名称空间和类名,例如System.IO.File
或MyNamespace.File
而不是File
。
要解决该问题,请删除行using AdsGoogle.Droid;
,这引起的任何错误将来自与您正在使用的教程无关的部分代码—该教程不使用任何内容从该名称空间访问。
答案 1 :(得分:0)
using Android.Gms.Ads;
using Android.Gms.Ads.Reward;
using Xamarin.Forms;
using Android.Views;
using AdsGoogle;
using Android.Widget;
using System;
using System.Timers;
using Android.OS;
using Android.Support.V7.App;
[assembly: Dependency(typeof(AdsGoogle.Droid.AdInterstitial_Droid))]
namespace AdsGoogle.Droid
{
public class AdInterstitial_Droid : AppCompatActivity, IRewardedVideoAdListener, IAdInterstitial
{
public IRewardedVideoAd RewardedVideoAd;
public AdInterstitial_Droid()
{
RewardedVideoAd = MobileAds.GetRewardedVideoAdInstance(Android.App.Application.Context);
RewardedVideoAd.RewardedVideoAdListener = this;
//RewardedVideoAd.AdUnitId = "ca-app-pub-2667741859949498/7232000911";
LoadAd();
}
void LoadAd()
{
var requestbuilder = new AdRequest.Builder();
RewardedVideoAd.LoadAd("ca-app-pub-2667741859949498/7232000911", requestbuilder.Build());
}
public void ShowRewardedVideo()
{
if (RewardedVideoAd.IsLoaded)
{
RewardedVideoAd.Show();
//Toast.MakeText(Android.App.Application.Context, MainPage.AdCoins.ToString(), ToastLength.Long).Show();
}
LoadAd();
}
它与上面的代码一起使用。 谢谢元素皮特对我的帮助。