android Xamarin,表单系统,参数异常:路径中有非法字符

klsxnrf1  于 2023-03-11  发布在  Android
关注(0)|答案(8)|浏览(192)

我是Xamarin.Forms项目的新手。我用VS 2019创建了一个项目,它没有以任何方式修改,在Android设备管理器中添加了Pixel 2 Pie 9.0 - Api 28模拟器。当我尝试在Android模拟器上运行该项目时,我无法运行我的应用程序,错误列表中有以下异常:

Error       XARDF7004: System.ArgumentException: Illegal characters in path.
   at System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath)
   at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath)
   at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
   at Xamarin.Android.Tasks.RemoveDirFixed.RunTask()
   at Xamarin.Android.Tasks.AndroidTask.Execute()

由于我只是使用VS 2019生成的基本项目模板,这一定是微软端的bug。我如何修复他们的错误?

i2byvkas

i2byvkas1#

这与我的解决方案文件夹的字符长度有关。

C:\Users\david\Dropbox\Projects\Visual Studio\PriceWatch\PriceWatch\PriceWatchXamarinForms\PriceWatchXamarinForms

(This IDE生成了膨胀的结构,Visual Studio文件夹之后的所有内容)
我把它改成了C:\Projects\PriceWatch\PriceWatchXamarinForms,然后它就工作了。

lrl1mhuk

lrl1mhuk2#

在我们的案例中,原因是我们的一些第三方依赖项(API程序集)迫使我们将属性〉Android选项〉链接设置为“Sdk和用户程序集”,而不是“无”。
希望这对某人有帮助...糟糕的错误信息。

00jrzges

00jrzges3#

我最近在VS 16.9.2和16.9.3中遇到了这个问题,这就是我如何修复它的。
1.打开android SDK管理器(确保您至少选中了API级别29或30)。
1.单击“Platforms”选项卡(您将登录到该选项卡)旁边的“Tools”选项卡
1.确保安装了以下各项:-***〉ANDROID SDK命令行工具、平台工具、构建工具、Android模拟器和NDK***

  1. P.S.下载和安装可能需要一段时间。一旦成功完成上述步骤,不要忘记创建您选择的模拟器。
kiayqfof

kiayqfof4#

可以通过启动adb shell并进入app目录来修复此问题:

/storage/emulated/0/Android/data/com.fips.SorterApp/files

那么

rm -rf .__override__

并再次展开

yhxst69z

yhxst69z5#

导致此错误的原因有很多。
我的问题是由于我的系统路径中有无效的目录。删除无效条目并重新启动我的环境(通过杀死并重新启动所有exploreriderexe进程或重新启动计算机)解决了这个问题。

omjgkv6w

omjgkv6w6#

解决这个问题的方法是使用subst命令在文件夹位置创建一个“新”驱动器,然后从新驱动器打开sln文件。

subst e: C:\Users\david\Dropbox\Projects\Visual Studio\PriceWatch\

然后打开e:在文件资源管理器或打开解决方案对话框中打开驱动器

ercv8c1e

ercv8c1e7#

我花了几个小时处理这个错误,关于改变路径的建议对我都不起作用,起作用的是我进入安卓模拟器,进入应用程序设置,强制停止,以及清除存储和缓存。

9njqaruj

9njqaruj8#

您需要考虑另一个问题来解决System.Argument异常,该异常具有“NameScope中已存在带X的元素”。要解决此问题,请尝试检查您的代码背后是否有两个InitializeComponent();在构造函数中。
因为,当InitiallizeComponent();被声明两次,则系统将尝试初始化具有相同名称的相同组件,因此将获得异常“AnelementwithX alreadyexistinNameScope”。

相关问题