【问题标题】:LinkAssemblies" task failed unexpectedlyLinkAssemblies”任务意外失败
【发布时间】:2017-12-13 01:11:59
【问题描述】:

我有 Xamarin Forms 应用程序 (https://github.com/xamarinhq/app-evolve),当我在调试模式下运行时它工作正常,但是当我尝试在发布模式下编译 Xamarin.Android 应用程序时,它会引发以下错误。

 error MSB4018: The "LinkAssemblies" task failed unexpectedly.
 error MSB4018: Mono.Linker.MarkException: Error processing method: 'System.Void Android.Support.V7.View.WindowCallbackWrapper::n_OnProvideKeyboardShortcuts_Ljava_util_List_Landroid_view_Menu_I(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.Int32)' in assembly: 'Xamarin.Android.Support.v7.AppCompat.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve Android.Views.KeyboardShortcutGroup
 error MSB4018:    at Mono.Linker.Steps.MarkStep.HandleUnresolvedType(TypeReference reference)
 error MSB4018:    at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
 error MSB4018:    at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
 error MSB4018:    at Mono.Linker.Steps.MarkStep.MarkGenericArguments(IGenericInstance instance)
 error MSB4018:    at Mono.Linker.Steps.MarkStep.GetOriginalType(TypeReference type)
 error MSB4018:    at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
 error MSB4018:    at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
 error MSB4018:    at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
 error MSB4018:    at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
 error MSB4018:    at Mono.Linker.Steps.MarkStep.ProcessQueue()
 error MSB4018:    --- End of inner exception stack trace ---
 error MSB4018:    at Mono.Linker.Steps.MarkStep.ProcessQueue()
 error MSB4018:    at Mono.Linker.Steps.MarkStep.Process()
 error MSB4018:    at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
 error MSB4018:    at Mono.Linker.Pipeline.Process(LinkContext context)
 error MSB4018:    at MonoDroid.Tuner.Linker.Process(LinkerOptions options, LinkContext& context)
 error MSB4018:    at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
 error MSB4018:    at Xamarin.Android.Tasks.LinkAssemblies.Execute()
 error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
 error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

我的最低安卓版本和目标安卓版本如下。

最低和目标 Android 版本

【问题讨论】:

标签: android visual-studio xamarin xamarin.forms


【解决方案1】:

此 API 是在 API 24 中引入的,因此您至少需要 API 24 才能进行编译。您需要将 &lt;TargetFramework&gt; 设置为 7.0 或更高版本才能包含此方法。

https://developer.android.com/reference/android/view/Window.Callback.html#onProvideKeyboardShortcuts(java.util.List, android.view.Menu, int)

作为一般提示,您应该将&lt;TargetFramework&gt; 设置为您正在使用的支持库的相同主要版本。例如,如果您使用 v26 的支持库,您将针对 API 26 进行编译。

【讨论】:

    猜你喜欢
    • 2015-04-10
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多