1

我正在尝试设置一个全新的 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(预览版)并且没有运气。

4

2 回答 2

2

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

于 2017-11-09T15:34:45.850 回答
-1

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

第1步:

第1步

第2步:

第2步

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

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

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

您可以参考我关于“使用 .NET Standard 2.0 创建跨平台移动应用程序”的书面文章,了解指导您将 Xamarin.Forms 从 PCL 转换为 .NET Standard 的步骤。

于 2017-11-06T03:52:29.070 回答