当链接器选项=“仅限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()
我发现了很多类似的问题(1,2,3),唯一提出的解决方案是禁用链接器,而不是我的应用程序。
如何诊断和解决问题?
TIA!
答案 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”链接器标志,也无法使用它。您可以直接从组件存储中使用它,而无需任何绑定预编译。