【问题标题】:Xamarin.Forms .NET Standard 2.0 Live Player ErrorXamarin.Forms .NET Standard 2.0 Live Player 错误
【发布时间】:2018-04-18 00:01:25
【问题描述】:

我正在尝试设置一个全新的 Xamarin Android 项目,我可以在其中使用 Xamarin.Forms(带有 .NET Standard 2.0)作为 UI,并且可以使用 Xamarin Live Player 预览 XAML/运行它。我遇到了一个奇怪的错误,我不知道如何解决。

我创建了一个新项目 > 跨平台应用程序 (Xamarin),保留默认名称“App1”。我选择了一个空白应用程序,将 UI 技术设置为 Xamarin.Forms,将代码共享策略设置为可移植类库 (PCL)。 生成解决方案的那一刻,我继续删除 iOS 和 UWP 项目。我在 Xamarin Live Player 中构建项目和预览就好了。

接下来,我为解决方案创建添加 > 新项目。我选择 .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(预览版)但没有运气。

【问题讨论】:

  • 请将代码、错误和数据添加为文本 (using code formatting),而不是图像。图片:A)不允许我们复制粘贴代码/错误/数据进行测试; B) 不允许根据代码/错误/数据内容进行搜索;和many more reasons。一般来说,文本格式的代码/错误/数据>>>>作为图像的代码/错误/数据>>没有。只有在除了代码格式的文本之外,如果图像添加了一些重要的东西,而不仅仅是文本代码/错误/数据传达的内容,则应该使用图像。
  • 你所做的一切都很好。但是请您注册 xamarin live player app 的 beta 测试程序并在您的手机上安装 beta 版本吗?
  • @Makyen - 明白了。起初我以为对话框似乎不允许我从中复制和粘贴文本......但发现单击对话框然后执行 Ctrl+C 会将整个错误对话框放入剪贴板以供使用。不是很明显。
  • @YaserMoradi 我已经在我的 Android 平板电脑(Samsung Tab E)上安装了 beta 播放器 (1.0.507),但仍然遇到同样的问题。

标签: c# xamarin xamarin.forms xamarin.android xamarin-live-player


【解决方案1】:

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

【讨论】:

  • James Montemagno 说它还不能与 .NET Standard 一起工作,这几乎是肯定的。当。感谢您的链接!
  • 这似乎仍然是一个问题。至少对我来说。
【解决方案2】:

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

第 1 步:

第 2 步:

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

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

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

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

【讨论】:

  • 我在我的步骤中注意到“我右键单击并在 App1.Android 中添加 ClassLibrary1 引用”。所以这不是我认为你建议的参考问题。
  • 从您提供的错误来看,似乎缺少参考。您能否在构建其余项目之前确认您是否构建了 ClassLibrary1 项目?我不确定这是否适合stackoverflow。但我想要求您提供整个源代码,看看有什么问题。
  • 一切正常 - 我什至可以在 Xamarin.Forms Previewer 中工作。我只是无法在 Xamarin Live Player 中查看它。可以吗?
  • 是的,你可以试试如果按照上面的链接创建一个新的应用项目,还会出现错误吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-20
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
相关资源
最近更新 更多