【问题标题】:How can I use Android.App.Application and Xamarin.Forms.Application in the same class?如何在同一类中使用 Android.App.Application 和 Xamarin.Forms.Application?
【发布时间】:2019-06-23 04:13:47
【问题描述】:

我收到一条错误消息,因为我在同一类中有以下两行代码:

using Xamarin.Forms;
using Android.App;

错误 CS0104:“Application”是“Android.App.Application”和“Xamarin.Forms.Application”之间的模糊引用

 if (Device.RuntimePlatform == Device.Android)
   deviceID = Settings.Secure.GetString(Application.Context.ContentResolver, Settings.Secure.AndroidId);

如何使用 Android.App 来执行代码?我需要设备ID。 我无法删除“使用 Xamarin.Forms;”因为我在课堂上使用它。

【问题讨论】:

  • 完全限定 Android.App.Application.Context.ContentResolver 或创建别名:using AApp = Android.App;

标签: c# xamarin


【解决方案1】:

您可以为命名空间分配别名

using xf = Xamarin.Forms;
using aa = Android.App;

...

aa.Application.Context.ContentResolver...

或者你可以在你的代码中使用完全限定的命名空间

Android.App.Application.Context.ContentResolver...

如果您的项目命名空间与另一个命名空间冲突,请使用 global 关键字

global::Android.App.Application.Context.ContentResolver...

【讨论】:

  • 谢谢,第一个选项有效。第二个选项不起作用,我在使用 Android.App.Application.Context.ContentResolver 时收到另一条错误消息:错误 CS0234:名称空间“Myproject.Android”中不存在类型或名称空间名称“App”(你是缺少程序集参考?)
  • 这是因为它无法区分 MyProject.Android 和基本 Android 命名空间。通常最好不要在项目名称中使用“Android”来避免这种情况。但是您可以通过使用 global 关键字来解决它 - 请参阅我的编辑
猜你喜欢
  • 1970-01-01
  • 2016-08-24
  • 2019-08-24
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
相关资源
最近更新 更多