在目录之间移动项目会出现错误

时间:2019-04-26 18:13:04

标签: android xamarin xamarin.forms

我是Xamarin的新手,并且正在创建一个新的Android应用程序。如果我在以下位置创建应用程序:

c:\dev\MyApp

然后,VS的默认模板可以正常编译。但是,如果我在更深的目录中创建应用程序,则会遇到一系列错误。我的第一个猜测是它是由目录名称中的破折号引起的(因此进行了上述实验)。

我的最新错误是,如果我在更深的目录(没有破折号)中创建一个新的应用程序(在上面的目录中可以正常编译-这只是默认模板)。我收到以下错误:

  

C:\ Program Files(x86)\ Microsoft Visual   Studio \ 2019 \ Preview \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(3184,2):   错误:找不到路径的一部分   “ AccessibilityManagerCompat_TouchExplorationStateChangeListenerImplementor.class”。

我找不到它要查找的文件或引用它的位置。是否基于完整路径的字符数有Android / Xamarin限制,还是对此有其他可能的解释?

1 个答案:

答案 0 :(得分:0)

您可能会遇到路径长度限制。 Windows的文件完整路径限制为260个字符。 Xamarin.Forms的Android项目可以生成非常深的目录结构,并且您的解决方案名称可以在各个级别重复3或4次。因此,基本路径长度为105,加上3 * 32 = 96,您已经可以使用201个字符。添加文件名的其他元素,它将很容易超过260个字符。而且不幸的是,您收到的错误消息非常隐蔽,基本上只是非常奇怪的构建中断。

因此,要解决的问题是,到解决方案根目录的路径很短,并且将解决方案名称的长度缩短,我发现使用默认的Xamarin.Forms模板使用<20个字符是非常安全的。但是我也将根目录路径的长度也缩短了。

可行的替代方法是对Visual Studio提供的默认值进行一些重命名。例如,如果您创建一个名为MyApplication的Xamarin.Forms解决方案,那么最终将得到以下目录:

MyApplication\MyApplication\MyApplication.Android\<more stuff here>

您可以将其缩短为:

MyApp\src\Android\<more stuff here>

该解决方案仍将称为MyApplication.sln。但这确实需要一些手动工作才能进行重命名,但是如果需要,也可以工作。