如何解决归档Xamarin Android应用程序出现错误XABLD7019
VS 2019版本16.7.1,Xamarin形式v4.8.0.1269
以前工作过,但是现在归档Android App失败(iOS OK)。我已经更新了Android SDK。
错误是(记录设置为诊断):
XABLD7019: System.UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\Java.Interop.dll.lz4' is denied.
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,FileShare share)
at Xamarin.Android.Tasks.AssemblyCompression.Compress(AssemblyData data)
at Xamarin.Android.Tasks.BuildApk.<AddAssemblies>g__CompressAssembly|138_1(ITaskItem assembly,<>c__DisplayClass138_0& )
at Xamarin.Android.Tasks.BuildApk.AddAssemblies(ZipArchiveEx apk,Boolean debug,Boolean compress,IDictionary`2 compressedAssembliesInfo)
at Xamarin.Android.Tasks.BuildApk.ExecuteWithAbi(String[] supportedAbis,String apkInputPath,String apkOutputPath,IDictionary`2 compressedAssembliesInfo)
at Xamarin.Android.Tasks.BuildApk.RunTask()
at Xamarin.Android.Tasks.AndroidTask.Execute()
该文件夹中有一个名为“ Java.Interop.dll”的文件,但没有一个名为“ Java.Interop.dll.lz4”的文件。
有人对导致这种情况的原因有任何想法吗?
解决方法
更新:升级到Visual Studio 16.7.5可以解决此问题。
更新为Visual Studio“ 16.8.0 Preview 1” 不能修复此错误。
解决方法:
-
将
<AndroidEnableAssemblyCompression>false</AndroidEnableAssemblyCompression>
添加到csproj的发行版中。 (我已经确认这一方法可行。)但这可能会导致apk大小增加。 ( UPDATE:似乎不会增加apk大小) -
启用项目链接。 (很遗憾,对于某些项目,这很难实现)
-
以管理员身份运行Visual Studio。 (我已经确认可以在预览版安装中使用此功能,但不准备在常规安装中使用)
-
添加用户修改权限
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\
(这有点像(3),但不太极端。(我已经确认了这个作品))
在准备要在VS19中存档的android应用时,我遇到了这个问题,发现将链接设置为“仅SDKs程序集”对我来说可以解决该问题,希望对您有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。