我正在尝试设置一个全新的 Xamarin Android 项目,我可以在其中使用 Xamarin.Forms(带有 .NET Standard 2.0)作为 UI,并且可以使用 Xamarin Live Player 预览 XAML/运行它。我遇到了一个奇怪的错误,我不知道如何解决。
我创建了一个新项目 > 跨平台应用程序(Xamarin),保留默认名称“App1”。我选择了一个空白应用程序,将 UI 技术设置为 Xamarin.Forms,将代码共享策略设置为可移植类库 (PCL)。生成解决方案的那一刻,我继续删除 iOS 和 UWP 项目。我在 Xamarin Live Player 中构建项目和预览就好了。
接下来,我为解决方案创建 Add > New Project。我选择 .NET Standard > 类库(.NET Standard)。我将默认名称保留为“ClassLibrary1”。我点击确定。我右键单击 ClassLibrary1 项目和 Manage NuGet Packages...,然后浏览并安装 Xamarin.Forms(与 PCL 的版本相同,即 2.4.0.280)。
接下来,我将 App.xaml 和 MainPage.xaml 从 PCL(名为 App1 (Portable))复制并粘贴到 ClassLibrary1 项目中。
接下来,我删除 App1(便携式)PCL 项目。这会导致 App1.Android 的 MainActivity.cs 出错,因为没有找到对 App 的引用。我右键单击并在 App1.Android 中添加 ClassLibrary1 引用。此外,在 MainActivity.cs 中,我使用 ClassLibrary1 添加;
这就是我的 App1.Android 现在的样子:
using System;
using ClassLibrary1;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace App1.Droid
{
[Activity(Label = "App1", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
}
}
该项目构建得很好。但是当我在 Xamarin Live Player 中预览它时,我收到了这个奇怪的错误消息:
在构建和运行您的应用程序时遇到以下错误:
• MainActivity.cs:找不到类型或命名空间名称“ClassLibrary1”(您是否缺少 using 指令或程序集引用?) • MainActivity.cs:找不到类型或命名空间名称“App”(您是缺少 using 指令或程序集引用?)
谁能告诉我我能做些什么来修复此错误并让 Xamarin Live Player 正常工作?
此外,我还尝试对解决方案中的所有内容进行 NuGet 更新(但没有任何预发布),但没有成功。
我正在运行 Visual Studio 15.4.2。我已经尝试过 15.5(预览版)并且没有运气。