我正在将现有应用程序从 Xamarin.Android 升级到 .Net7 Android,并在尝试使用 Maui Essentials 时遇到问题。在我的 .csproj 文件中,我包含了这两行
<UseMaui>True</UseMaui>
<UseMauiEssentials>True</UseMauiEssentials>
我还安装了 Xamarin Essentials,因为我在毛伊岛存在之前就使用过它。现在我收到与 android 清单相关的构建错误
/Project.Android/AndroidManifest.xml:错误 APT2260:找不到资源 xml/microsoft_maui_essentials_fileprovider_file_paths(又名 com.app.package:xml/microsoft_maui_essentials_fileprovider_file_paths)。 [/Project.Android.csproj]
/Project.Android/AndroidManifest.xml:错误 APT2260:找不到资源 xml/xamarin_essentials_fileprovider_file_paths(又名 com.app.package:xml/xamarin_essentials_fileprovider_file_paths)。 [/Project.Android.csproj]
似乎还有其他一些引用“xml/library_file_paths”和“integer/google_player_services_version”。我不确定这是否与毛伊岛有关,但这是第一次注意到这个问题。它可能更像是.Net7 的东西。目前正在 Mac 上使用 Visual Studio Code(如果有的话)。
无需执行任何操作即可在 .NET MAUI 应用程序中使用
Xamarin.Essentials
,
除了删除对 Xamarin.Essentials
命名空间的引用之外,
因为 .NET MAUI 已经包含以下功能
Xamarin.Essentials.
因此,您可以尝试首先从 .NET Android 或 .NET iOS 应用程序中删除 Xamarin.Essentials NuGet 包。
然后通过调用 MainActivity 类中的 Platform.Init 方法来初始化“essentials”功能:
using Android.Content.PM;
using Android.Runtime;
using Microsoft.Maui.ApplicationModel;
namespace MyAndroidApp;
[Activity(Label = "@string/app_name", MainLauncher = true)]
public class MainActivity : Activity
{
protected override async void OnCreate(Bundle? savedInstanceState)
{
base.OnCreate(savedInstanceState);
Platform.Init(this, savedInstanceState);
// ...
}
}
有关更多详细信息,您可以参考在.NET Android和.NET iOS应用程序中迁移Xamarin.Essentials代码