GetAdditionalResourcesFromAssemblies意外失败

时间:2015-02-18 14:04:25

标签: c# android xamarin

我刚刚安装了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)

这是什么原因,我该如何解决?

更多信息:

  • Android SDK工具:24.0.2
  • Android SDK平台工具:21
  • Android SDK构建工具:21.1.2

2 个答案:

答案 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>

希望它会有所帮助。