我在Windows上使用VS2017(15.7.1)有一个Xamarin.Forms(2.5.1.527436)应用程序。 android项目在调试下构建并运行良好。但是,当我在发布版本下构建时,我收到以下错误:
严重级代码描述项目文件行抑制状态 错误“LinkAssemblies”任务意外失败。 Mono.Linker.MarkException:错误处理方法:汇编中的'System.Void Xamarin.Forms.Pages.BaseDataSource / d__22 :: MoveNext()':'Xamarin.Forms.Pages.dll'---> Mono.Cecil.ResolutionException:无法解析System.Void Xamarin.Forms.Log :: Warning(System.String,System.String) at Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod(MethodReference reference) 在Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference) 在Mono.Linker.Steps.MarkStep.MarkInstruction(指令说明) 在Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body) 在Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition方法) 在Mono.Linker.Steps.MarkStep.ProcessQueue() ---内部异常堆栈跟踪结束--- 在Mono.Linker.Steps.MarkStep.ProcessQueue() 在Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue() 在Mono.Linker.Steps.MarkStep.Process() 在Mono.Linker.Steps.MarkStep.Process(LinkContext context) 在Mono.Linker.Pipeline.Process(LinkContext context) 在MonoDroid.Tuner.Linker.Process(LinkerOptions选项,ILogger记录器,LinkContext& context) 在Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res) 在Xamarin.Android.Tasks.LinkAssemblies.Execute() 在Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 在Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext()IRMobile.Android C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets 1812
我正在链接“仅限Sdk Assemblies”,最低安卓版本为5.1(等级22),目标Android版本为8.1(等级27)
有什么想法吗?
答案 0 :(得分:3)
经过一番研究,我只是
OR
答案 1 :(得分:2)
因此将链接更改为无并确保更新所有 Nuget 包对我来说不起作用。就我而言,我的 android 项目经过近一年的调整和更改,添加和删除了 nuget 包。因此,我的解决方案中有大量不需要的 Android 特定 nuget 包。要确定我可以删除的内容,
我必须更改的唯一一段代码是关于我的启动画面。在我的启动画面活动中,我有以下内容
using Android.Support.V7.App;
public class SplashActivity : AppCompatActivity
当我删除对 Android.Support.V7.App 库的引用时,找不到 AppCompatActivity。为了解决这个问题,我简单地添加了以下 using 语句:
using AndroidX.AppCompat.App;
一旦我完成所有这些,应用程序将在发布模式下编译(仍然将链接设置为无)并运行良好。
这只是另一种选择,以防其他解决方案最终不适合您。