我正在学习这个Xamarin.Forms教程。我按照说明构建了一个共享项目,但我在下载的一个文件上出错了,该文件应该让我的应用程序在Android上访问拨号功能。
这是我收到的完整错误信息:
CS0234 The type or namespace name 'App' does not exist in the namespace 'Phoneword.Android' (are you missing an assembly reference?) Phoneword.Android
我在网上找到了几个听起来相似的错误,包括这个,但是没有一个解决方案适用于我。一般趋势似乎是App类位于Shared项目中,因此可能会导致引用出错,但是我已经删除了Shared项目对Android的引用,然后出现了大量其他错误,然后我重新添加了它,除了"App"之外的所有错误都消失了。因此,我不认为这是一个引用问题。 PhoneDialer.Droid.cs(我标记了出错的那一行)
using Android.Content;
using System.Linq;
using System.Threading.Tasks;
using Android.Telephony;
using Xamarin.Forms;
using Phoneword.Android;
using Uri = Android.Net.Uri;
[assembly: Dependency(typeof(PhoneDialer))]
namespace Phoneword.Android
{
public class PhoneDialer : IDialer
{
public Task<bool> DialAsync(string number)
{
var context = Android.App.Application.Context; //<=ERROR
...
}
...
}
}
当我将代码中的“App”更改为“Phoneword.App.Application.Context”时,没有出现任何错误,但随后出现了“Application不存在”的错误提示。
有人知道问题出在哪里吗?
我已将解决方案上传至github,以便于查看全部代码: https://github.com/joeymorano/Phoneword