【发布时间】: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