Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xamarin.Forms System.ArgumentException: Illegal characters in path

I am brand new to Xamarin.Forms projects. I have created a project with VS2019 which has not been modified in any way, added a Pixel 2 Pie 9.0 - Api 28 emulator within the Android Device Manager. When I try to run the project on the android emulator, I am unable to run my app, with the following exception in my error list:

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()   

Since I am simply using a basic project template generated by VS2019, this has to be a bug on Microsofts end. How can I fix their error?

like image 601
JohnWick Avatar asked Dec 19 '19 01:12

JohnWick


3 Answers

It had to do with the character length of my solutions folder.

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

(This bloated structure was generated by the IDE, everything after the Visual Studio folder)

I changed it to C:\Projects\PriceWatch\PriceWatchXamarinForms and then it worked.

like image 108
JohnWick Avatar answered Nov 16 '22 04:11

JohnWick


I our case the reason was that some of our third party dependencies (api assemblies) forced us to set Properties > Android Options > Linking to "Sdk and User Assemblies" instead of "None".

Hope this helps someone... Bad error message.

like image 24
Richard Bladh Avatar answered Nov 16 '22 03:11

Richard Bladh


I recently experienced this with VS 16.9.2 AND 16.9.3. And this is how I fixed it.

  1. Open android SDK manager (make sure you have at least API level 29 or 30 checked).

  2. Click on the Tools tab right next to Platforms Tab(that you will have landed on)

  3. Ensure that the following are installed: -> ANDROID SDK command-line tools, Platform-tools, build tools, Android emulator and NDK

  4. P.S. It might take a while to download and install. Don't forget to create your emulator of choice once the above steps have been successfully completed.

like image 29
Kudzai Dube Avatar answered Nov 16 '22 04:11

Kudzai Dube