我刚刚安装了Xamarin 3.9.289(最新版本)。使用Visual Studio 2013或Xamarin Studio时,出现以下错误:
C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2,2): Error MSB4018: The "GetAdditionalResourcesFromAssemblies" task failed unexpectedly.
System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string.
Parameter name: startIndex
at System.String.Substring(Int32 startIndex, Int32 length)
at Xamarin.Android.Tasks.GetAdditionalResourcesFromAssemblies.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext() (MSB4018) (Xamarin.Droid)
这是什么原因,我该如何解决?
更多信息:
答案 0 :(得分:1)
问题是我的样本项目被称为&#34; Xamarin&#34; - 查看构建dll的反汇编代码,表明它正在内部搜索该字符串,遗憾地从左侧开始,而不是从右侧开始。
修复很简单:重命名项目。
答案 1 :(得分:1)
Xamarin.Android
个应用程序使用链接器来减少应用程序的大小。默认值为SdkOnly
None
:不会尝试关联。SdkOnly
:链接将是
仅在基类库上执行,而不是在用户的程序集上执行。Full
:将对基类库和用户执行链接
组件。
For more details refer here..
注意:如果您遇到链接问题,例如LinkAssemblies“任务意外失败。或
“GetAdditionalResourcesFromAssemblies”任务意外失败。 System.IO.FileNotFoundException :.也许它在Mono for Android配置文件中不存在?
然后重新检查您的xamarin.Android项目设置并设置以下标记
<TargetFrameworkVersion>v4.4</TargetFrameworkVersion>
<AndroidUseLatestPlatformSdk>true</AndroidUseLatestPlatformSdk>
希望它会有所帮助。