0

当链接器选项 =“仅 SDK”和“无法解析 Android.App.Fragment”消息时,我收到编译时错误。当我向我的 MonoDroid 应用程序添加带有 FragmentActivity 的谷歌地图支持时,这一切都开始了。

使用 Linker option = "None" 一切正常,除了 .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),唯一提出的解决方案是禁用链接器,这对我的应用程序而言并非如此。

如何诊断和解决问题?

蒂亚!

4

3 回答 3

0

您是否到处引用 Mono.Android.Support.v4 类?

于 2013-10-02T14:45:31.503 回答
0

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

于 2013-10-19T05:16:15.523 回答
0

一段时间以来,我一直在为同样的问题苦苦挣扎。目前,我已成功切换到 Xamarin Updates 的 Alpha 通道并使用 Xamarin.Android 和 Xamarin Studio 的 alpha 版本。运行这些 alphas,我已经能够在启用链接的情况下毫无问题地进行发布构建。希望有帮助!

于 2013-10-09T19:39:28.797 回答