c# - 有没有办法修复使用 Xamarin C# 找不到的 Runtime.cs 文件
问题描述
我尝试添加 AdMob,我认为错误来自更改代码,AppDelegate.cs
但我不确定 100%。
我的代码如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using Foundation;
using UIKit;
namespace WeatherLocationInfo.iOS
{
// The UIApplicationDelegate for the application. This class is responsible for launching the
// User Interface of the application, as well as listening (and optionally responding) to
// application events from iOS.
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
//
// This method is invoked when the application has loaded and is ready to run. In this
// method you should instantiate the window, load the UI into it and then make the window
// visible.
//
// You have 17 seconds to return from this method, or iOS will terminate your application.
//
[Obsolete]
#pragma warning disable CS0809 // Obsolete member overrides non-obsolete member
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
#pragma warning restore CS0809 // Obsolete member overrides non-obsolete member
{
Xamarin.Forms.Forms.Init();
Google.MobileAds.MobileAds.Configure(AppConstants.AppId);
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}
}
}
错误可能来自哪里?
我将此链接Xamarin Forms AdMob闲置,当我下载他工作的项目时。当我仅为 iOS 项目复制/粘贴和下载库时,我收到Runtime.cs file not found.
了有没有办法解决这个错误?
我有一个名为AdMobViewRenderer.cs
我认为错误来自那里的文件或
appDelegate.cs
所以 AdMobViewRenderer.cs 中的代码是:
using System.ComponentModel;
using Foundation;
using Google.MobileAds;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using WeatherLocationInfo.Controls;
using WeatherLocationInfo.iOS.Implementations;
[assembly: ExportRenderer(typeof(AdmobControl), typeof(AdMobViewRenderer))]
namespace WeatherLocationInfo.iOS.Implementations
{
[Protocol]
public class AdMobViewRenderer : ViewRenderer<AdmobControl, BannerView>
{
[System.Obsolete]
#pragma warning disable CS0809 // Obsolete member overrides non-obsolete member
protected override void OnElementChanged(ElementChangedEventArgs<AdmobControl> e)
#pragma warning restore CS0809 // Obsolete member overrides non-obsolete member
{
base.OnElementChanged(e);
if (Control == null)
{
SetNativeControl(CreateBannerView());
}
}
[System.Obsolete]
#pragma warning disable CS0809 // Obsolete member overrides non-obsolete member
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
#pragma warning restore CS0809 // Obsolete member overrides non-obsolete member
{
base.OnElementPropertyChanged(sender, e);
Control.AdUnitID = Element.AdUnitId;
}
[System.Obsolete]
private BannerView CreateBannerView()
{
var bannerView = new BannerView(AdSizeCons.SmartBannerPortrait)
{
AdUnitID = Element.AdUnitId,
RootViewController = GetVisibleViewController()
};
bannerView.LoadRequest(GetRequest());
Request GetRequest()
{
var request = Request.GetDefaultRequest();
return request;
}
return bannerView;
}
private UIViewController GetVisibleViewController()
{
var windows = UIApplication.SharedApplication.Windows;
foreach (var window in windows)
{
if (window.RootViewController != null)
{
return window.RootViewController;
}
}
return null;
}
}
}
解决方案
推荐阅读
- html - CSS:当屏幕宽度高于某个值时,将按钮放置在 div 中右侧的最佳方法
- sql-server - 如何清除 SQL Server 的磁盘空间?
- c++ - 班级成员的顺序会影响访问速度吗?
- mysql - 如何在没有常规权限的情况下部署 laravel 应用程序
- php - 如何在 WordPress 页面上显示特定帖子?
- linux - 如何检查 Linux 中的 /etc/passwd 文件是否包含无效条目?
- lua - Monaco Editor - 为 Lua 添加 monarch 多行字符串标记
- omnet++ - LEACH CASTALIA 中的 PHY 模型
- javascript - 如何获取 setTimeout 函数的结果?
- java - 尝试在给定字段上为给定类创建比较器时出错