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
我正在尝试建立一个全新的 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