Xamarin Forms PCL 中的 LoadApplication 错误

Posted

技术标签:

【中文标题】Xamarin Forms PCL 中的 LoadApplication 错误【英文标题】:Error on LoadApplication in Xamarin Forms PCL 【发布时间】:2018-08-11 10:18:50 【问题描述】:

我创建了一个新的Xamarin Forms PCL 解决方案,在调试模式下,我检查了Enable ProGuard 选项并选择了Linking 组合框到Sdk and User Assemblies。 现在我在 android 上运行我的应用程序,之后它在 MainActivity.cs 类和在线显示我一个错误

LoadApplication(new App());

错误:

Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object.

我这样做是为了减小发布应用程序的大小,并且我必须将发布模式更改为调试以检查发生了什么。

【问题讨论】:

我假设您使用的是 Xamarin 表单?请发布引发错误的代码行。我认为您的问题是您需要将其更改为LoadApplication(new PCLNameHere.App()) 我试过了,但它在 LoadApplication(new App());重要的一点是,当我将 Linking 选项更改为 none 并且未选中 ProGuard 选项时,我的应用程序成功运行。我需要这些选项来减少我的最终 .apk 文件 堆栈跟踪的其余部分是什么意思? 仅链接 SDK 程序集还不够? @hvaughan3 我的 Environment.StackTrace 的值是:在 System.Environment.get_StackTrace () [0x00000] in :0 在 System.Diagnostics.Debugger.Mono_UnhandledException_internal (System.Exception) [ 0x00000]在:0在System.Diagnostics.Debugger.Mono_UnhandledException(System.Exception的前)[0x00000]在:0在System.Object.d09f62bf-1e4f-438B-810E-1b2febfe5330(System.IntPtr, System.IntPtr , System.IntPtr ) [0x00000] 在 :0 【参考方案1】:

根据:The type or namespace 'App' does not exist in the current namespace

清理解决方案 构建 PCL 从受影响的项目中删除 PCL 引用 重新添加 PCL 参考 构建

我尝试了这个解决方案,它确实有效。

【讨论】:

【参考方案2】:

查看您的 App.xaml.cs 文件。 如果出现“InitializeComponent does not exist in the current context 错误”,这很可能是由已知的 VS 错误引起的。

解决方案:

右键单击 App.xaml.cs 并选择属性。 将构建操作更改为“内容”。 申请。 将 Build Action 改回 C# Compiler。 清洁解决方案。 构建和部署。

【讨论】:

以上是关于Xamarin Forms PCL 中的 LoadApplication 错误的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用 Xamarin.Forms PCL 项目中的 Devexpress.Xamarin.Android.Charts

如何从 Xamarin.forms pcl 中的 Url 检索 json 字符串

如何从 Xamarin.forms pcl 中的 Url 检索 json 字符串

Xamarin.Forms 中的 MVVMLight 的 EventToCommand

Xamarin.Forms PCL/SAP 自定义渲染,支持paintcode 3

为啥我不能在 Xamarin Forms 中选择 PCL 项目?