Xamarin.Forms .NET Standard 2.0 实时播放器错误

Xamarin.Forms .NET Standard 2.0 Live Player Error

我正在尝试建立一个全新的 Xamarin Android 项目,我可以在其中为 UI 使用 Xamarin.Forms(使用 .NET Standard 2.0)并且可以使用 Xamarin Live播放器预览 XAML/run 它。我一直收到一个奇怪的错误,我不知道如何解决。

我创建一个新项目 > 跨平台应用程序 (Xamarin),保留默认名称 "App1"。我 select 一个空白应用程序,UI 技术设置为 Xamarin.Forms,代码共享策略设置为便携式 Class 库(PCL)。 解决方案生成后,我继续删除 iOS 和 UWP 项目。我构建项目并在 Xamarin Live Player 中预览就好了。

接下来,我为解决方案创建“添加”>“新建项目”。我 select .NET Standard > Class 库(.NET Standard)。我将默认名称保留为 "ClassLibrary1"。我单击确定。我右键单击 ClassLibrary1 项目并管理 NuGet 包...,然后浏览并安装 Xamarin.Forms(与 PCL 的版本相同,即 2.4.0.280)。

接下来,我将 PCL(名为 App1(便携式))中的 App.xaml 和 MainPage.xaml 复制并粘贴到 ClassLibrary1 项目中。

接下来,我删除 App1 (Portable) PCL 项目。这会导致 App1.Android 的 MainActivity.cs 出错,因为找不到对 App 的引用。我右键单击并在 App1.Android 中添加 ClassLibrary1 引用。此外,在 MainActivity.cs 中,我添加了 using 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 中预览它时,我收到了这个奇怪的错误消息:

The following errors were encountered when building and running your app:

• MainActivity.cs: The type or namespace name 'ClassLibrary1' could not be found (are you missing a using directive or an assembly reference?) • MainActivity.cs: The type or namespace name 'App' could not be found (are you missing a using directive or an assembly reference?)

谁能告诉我如何修复此错误并让 Xamarin Live Player 正常工作?

此外,我还尝试对解决方案中的所有内容进行 NuGet 更新(但没有预发布)但没有成功。

我 运行 Visual Studio 15.4.2。我试过升级到 15.5(预览版)但没有成功。

我认为您需要添加新创建的 .netstandard 项目作为每个平台特定项目的参考。按照这两个步骤

第 1 步:

第 2 步:

17a: 右击项目(eg. Android project) -> 17b: 添加 -> 17c: 引用 -> 18a: 勾选新创建的项目并点击 OK (这基本上会告诉你的项目,它需要添加.NETStandard 项目作为引用)和 18b:单击确定添加为引用。

对 Android、UWP 和 iOS 重复相同的操作。

同时,您必须确保所有项目都安装了相同版本的 Xamarin.Forms & .NET Standard 2.0。

您可以参考我在“Create Cross Platform Mobile App with .NET Standard 2.0”上写的 post,了解指导您将 Xamarin.Forms 从 PCL 转换为 .NET Standard 的步骤。

遗憾的是,Live 播放器尚不能在 .Net Standard 上运行。 参考:https://forums.xamarin.com/discussion/comment/303636