我正在尝试建立一个全新的Xamarin Android项目,我可以在其中使用Xamarin.Forms(使用.NET Standard 2.0),并可以使用Xamarin Live Player预览XAML /运行它。我遇到了一个奇怪的错误,我不知道如何解决。
我创建了一个新项目>跨平台应用程序(Xamarin)保留默认名称“App1”。我选择一个空白应用程序,UI技术设置为Xamarin.Forms和代码共享策略到可移植类库(PCL)。 在生成解决方案的那一刻,我继续删除iOS和UWP项目。我在Xamarin Live Player中构建项目和预览就好了。
接下来,我创建了Add>解决方案的新项目。我选择了一个.NET标准>类库(.NET标准)。我将默认名称保留为“ClassLibrary1”。我点击确定。我右键单击ClassLibrary1项目和Manage NuGet Packages ...,然后浏览并安装Xamarin.Forms(与PCL版本相同,即2.4.0.280)。
接下来,我将App.xaml和MainPage.xaml从PCL(名为App1(Portable))复制并粘贴到ClassLibrary1项目中。
接下来,我删除了App1(Portable)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”可以 找不到(你错过了使用指令或程序集 参考?)•MainActivity.cs:类型或命名空间名称'App'可以 找不到(你错过了使用指令或程序集 引用?)
任何人都可以告诉我我可以做些什么来解决这个错误并让Xamarin Live Player工作吗?
我另外,尝试对解决方案中的所有内容进行NuGet更新(虽然没有预先发布)但没有成功。
我正在运行Visual Studio 15.4.2。我试过去15.5(预览版)并没有运气。
答案 0 :(得分:2)
不幸的是,Live播放器尚未在.Net Standard上运行。 参考:https://forums.xamarin.com/discussion/comment/303636
答案 1 :(得分:-1)
我认为您需要添加新创建的.netstandard项目作为每个平台特定项目的参考。请按照以下两个步骤进行操作
17a:右键单击Project(例如Android项目) - > 17b:添加 - > 17c:参考 - > 18a:勾选新创建的项目并单击OK(这基本上会告诉您的项目,它需要添加.NETStandard项目作为参考)和18b:单击OK添加作为参考。
对Android,UWP&的iOS。
同时,您必须确保所有项目都安装了相同版本的Xamarin.Forms& .NET Standard 2.0。
您可以参考我关于“Create Cross Platform Mobile App with .NET Standard 2.0”的书面帖子,了解指导您将Xamarin.Forms从PCL转换为.NET Standard的步骤。