c# - 创建自定义渲染器时出现 TypeLoadException
问题描述
我在 Xamarin.Forms (4.7.0) 中创建了一个 Android 应用程序,我想在其中实施 AdMob 中的广告。为此,我必须围绕我之前创建的 View 类创建一个 ViewRenderer 包装器。一旦我将此行添加到 ViewRenderer
[assembly: ExportRenderer(typeof(AdBanner), typeof(AdBanner_Droid))]
然后构建并启动应用程序,我收到此错误:
System.TypeLoadException: 'Could not load type DDKTCKE.Controls.AdBanner, APP_NAME, Version=1.2.2.0, Culture=neutral, PublicKeyToken=null while decoding custom attribute: (null)'
我已经尝试过:
- 删除 bin 和 obj 文件夹
- 从测试设备中擦除数据
- 清洗溶液
A 还在一个新的空白项目中使用了完全相同的代码,并且它可以正常工作。什么可能导致我的主要项目出现问题?我应该调查什么?
解决方案
要实现 Android 渲染器,需要两个类;Forms 项目中的AdBanner
类(或作为对 Forms 项目的项目引用的 Netstandard 项目)和AdBannerRenderer
Android 项目中的类:
AdBanner:
using Xamarin.Forms;
namespace MyProject
{
public class AdBanner: View
...
AdBannerRenderer:
using Android.Gms.Ads;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
using AdBanner = MyProject.AdBanner;
[assembly: ExportRenderer(typeof(AdBanner), typeof(Droid.Renderers.AdBannerRenderer))]
namespace Droid.Renderers
{
public class AdBannerRenderer : ViewRenderer<AdBanner, AdView>
...
推荐阅读
- php - PHP 到 PDF 勾选复选框
- python - 如何用模板标签复数
- batch-file - 从文本文件中读取完整的文件路径并返回带有扩展名的文件名
- javascript - 使用 Chrome 扩展时从弹出窗口获取网页的 document.body
- vb.net - 删除 Windows 默认边框后,Visual Basic 关闭窗体
- objective-c - 如何将 NSDictionary 从 Swift 转换为 Objective-c?
- steam - 如何使用 Steam API 获取 Steam 游戏服务器玩家数量?
- c++ - 在可视化代码中包含 CPPUnit 测试
- vhdl - 多路复用器 8x1 与 4 2x1 多路复用器和 1 4x1
- macos - bash ng 命令未找到 mac