android - Xamarin - “ManifestMerger”任务意外失败
问题描述
更新 Visual Studio 版本后,我的 Xamarin Forms 项目未构建,向我显示以下错误。我试图创建一个空白应用程序,但出现同样的错误。
错误:
Severity Code Description Project File Line Suppression State
Error The "ManifestMerger" task failed unexpectedly.
System.IO.FileNotFoundException: Could not find file 'D:\GIT\AppBlank\AppBlank\AppBlank.Android\obj\Debug\110\android\AndroidManifest.xml.tmp'.
File name: 'D:\GIT\AppBlank\AppBlank\AppBlank.Android\obj\Debug\110\android\AndroidManifest.xml.tmp'
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
at System.Xml.XmlTextReaderImpl.FinishInitUriString()
at System.Xml.XmlTextReaderImpl..ctor(String uriStr, XmlReaderSettings settings, XmlParserContext context, XmlResolver uriResolver)
at System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext)
at System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings, XmlParserContext inputContext)
at System.Xml.Linq.XDocument.Load(String uri, LoadOptions options)
at Xamarin.Android.Tasks.ManifestDocument..ctor(String templateFilename)
at Xamarin.Android.Tasks.ManifestMerger.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() AppBlank.Android
输出构建:
Rebuild started...
Restored D:\GIT\AppBlank\AppBlank\AppBlank\AppBlank.csproj (in 29 ms).
1>------ Rebuild All started: Project: AppBlank, Configuration: Debug Any CPU ------
Restored D:\GIT\AppBlank\AppBlank\AppBlank.Android\AppBlank.Android.csproj (in 99 ms).
1>AppBlank -> D:\GIT\AppBlank\AppBlank\AppBlank\bin\Debug\netstandard2.0\AppBlank.dll
2>------ Rebuild All started: Project: AppBlank.Android, Configuration: Debug Any CPU ------
2> AppBlank.Android -> D:\GIT\AppBlank\AppBlank\AppBlank.Android\bin\Debug\AppBlank.Android.dll
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: The "ManifestMerger" task failed unexpectedly.
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: System.IO.FileNotFoundException: Could not find file 'D:\GIT\AppBlank\AppBlank\AppBlank.Android\obj\Debug\110\android\AndroidManifest.xml.tmp'.
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: File name: 'D:\GIT\AppBlank\AppBlank\AppBlank.Android\obj\Debug\110\android\AndroidManifest.xml.tmp'
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at System.Xml.XmlTextReaderImpl.FinishInitUriString()
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at System.Xml.XmlTextReaderImpl..ctor(String uriStr, XmlReaderSettings settings, XmlParserContext context, XmlResolver uriResolver)
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext)
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings, XmlParserContext inputContext)
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at System.Xml.Linq.XDocument.Load(String uri, LoadOptions options)
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at Xamarin.Android.Tasks.ManifestDocument..ctor(String templateFilename)
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at Xamarin.Android.Tasks.ManifestMerger.Execute()
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
2>D:\Arquivos de Programas\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1448,3): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========
为了尝试正确,我尝试将 Xamarin.Forms 版本降级到 4.6.0.847 版本并在 AndroidManifest.xml 中添加工具,但不起作用。
环境:
适用于 Windows 的 Microsoft Visual Studio Community 2019 版本 16.10.3
Xamarin.Android SDK 11.3.0.4
Xamarin.Forms 5.0.0.2083
目标框架:Android 11.0 (R)
解决方案
现在问题解决了,但我不知道它发生了。
之前,我尝试过:
- 清洁和重建解决方案
- 删除文件夹 bin、obj 并重建解决方案
- 更新和降级 Xamarin.Forms 版本
- 关闭和打开解决方案以重建
- 重新启动我的电脑
- 修复 Visual Studio
- 卸载并安装 Visual Studio
现在,我只需打开解决方案并尝试重建。
成功。
环境是一样的。
推荐阅读
- python - xmlrunner 使用 unittest 复制子测试的打印语句
- php - 更新到 PHP 7.3 后数组输出失败
- valgrind - 无法在 yocto 中为 armv7 构建 valgrind
- reactjs - store.dispatch 无法读取未定义的属性“then”
- wpf - WPF 下划线绑定 (MVVM)
- delphi-2010 - 有没有办法设置可以在 Delphi 的编辑中插入的最小字符数?
- bash - 如何在大日志文件中按分钟计算?
- firebase - firestore ordertBy() queries make app can't take data in first request
- c# - 将双精度值存储在二进制文件中并读取它
- java - 如何允许用户切换默认本地语言?