Xamarin.iOS.Appodeal.NSInvalidArgumentException Причина: - [APDImage imageUrl] - PullRequest
0 голосов
/ 07 декабря 2018

Xamarin.iOS.Appodeal.Foundation.MonoTouchException: выброшено исключение Objective C.Имя: NSInvalidArgumentException Причина: - [APDImage imageUrl]: нераспознанный селектор отправлен в экземпляр 0x280002420

enter image description here

class NativeAdDelegate : APDNativeAdLoaderDelegate
{
    NativeAdView _nativeAdView;

    public NativeAdDelegate(NativeAdView nativeAdView) =>
        _nativeAdView = nativeAdView;

    public override void NativeAdLoader(APDNativeAdLoader loader, NSError error) =>
        Console.WriteLine("APDNativeAd DidFailToLoadWithError");

    public override void NativeAdLoader(APDNativeAdLoader loader, NSArray nativeAds) =>
        _nativeAdView.DidLoad(nativeAds.GetItem<APDNativeAd>(0));
}

В

nativeAds.GetItem (0)

У меня есть заголовок и описание, но у меня нет изображений.Я получаю исключение в nativeAds.GetItem (0) .IconImage.ImageUrl.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

APDImage * mainImage - Растровое изображение.Рекламный объект содержит как значок, так и изображение.Обязательно использовать хотя бы один из этих элементов.

Устаревший метод.

Для более подробной информации вы можете обратиться здесь .

public override void NativeAdLoader(APDNativeAdLoader loader, NSArray nativeAds)
{
    _nativeAdView.DidLoad(nativeAds.GetItem<APDNativeAd>(0));
}

public void DidLoad(APDNativeAd nativeAd)
{
     this.nativeAd = nativeAd;
     UIView view = new UIView();
     view.Frame = new System.Drawing.Rectangle(10, 30, 200, 200);
     view.BackgroundColor = UIColor.FromRGB(96, 36, 36);
     View.AddSubview(view);
     this.nativeAd.AttachToView(view, UIApplication.SharedApplication.Windows[0].RootViewController);
     this.myMediaView.SetNativeAd(this.nativeAd, this);
     View.AddSubview(this.myMediaView); 
}
0 голосов
/ 10 декабря 2018

Изображения необходимы. В противном случае свойство ImageUrl вернет нулевое значение, что приведет к возникновению проблемы.

public override void DidLoadNativeAds(APDNativeAdLoader loader, APDNativeAd[] nativeAds)
  {
      _nativeAdView.DidLoad(nativeAds[0]);
  }     

Для более подробной информации вы можете обратиться здесь .

...