仅启用了Link SDK,无法解析Android.App.Fragment

时间:2013-10-02 09:26:11

标签: google-maps xamarin.android xamarin linker-errors android-fragmentactivity

当链接器选项=“仅限SDK”并且“无法解析Android.App.Fragment”消息时,我收到编译时错误。这一切都始于我将FragmentActivity的Google Maps支持添加到我的MonoDroid应用程序中。

使用Linker选项=“无”一切正常,除非.apk变得很大(当链接SDK仅启用时,〜30mb而不是7mb)

错误详情:

The "LinkAssemblies" task failed unexpectedly.
Mono.Cecil.ResolutionException: Failed to resolve Android.App.Fragment
   at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
   at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
   at Mono.Linker.Steps.MarkStep.InitializeType(TypeDefinition type)
   at Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition assembly)
   at Mono.Linker.Steps.MarkStep.Initialize()
   at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
   at Mono.Linker.Pipeline.Process(LinkContext context)
   at MonoDroid.Tuner.Linker.Process(LinkerOptions options, LinkContext& context)
   at Xamarin.Android.Tasks.LinkAssemblies.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext()

我发现了很多类似的问题(123),唯一提出的解决方案是禁用链接器,而不是我的应用程序。

如何诊断和解决问题?

TIA!

3 个答案:

答案 0 :(得分:0)

您是否在所有地方引用Mono.Android.Support.v4课程?

答案 1 :(得分:0)

我现在一直在努力解决同样的问题。目前,我已成功转换到Xamarin Updates的Alpha通道并使用Xamarin.Android和Xamarin Studio的alpha版本。运行这些alpha,我已经能够在没有问题的情况下启用Linking进行发布构建。希望有所帮助!

答案 2 :(得分:0)

最终,GooglePlayServices Xamarin组件已更新至12.0.1,即使使用“仅限SDK”链接器标志,也无法使用它。您可以直接从组件存储中使用它,而无需任何绑定预编译。