【问题标题】:Very simple Xamarin.Forms app won't Archive非常简单的 Xamarin.Forms 应用程序不会存档
【发布时间】:2017-07-07 01:44:37
【问题描述】:

我正在开发我的第一个 Android 应用,但遇到了麻烦。我正在尝试构建和存档最简单的 Android 应用,但无法使存档步骤正常工作。

这就是我正在做的......

  1. 使用 Xamarin Preview 扩展和 Xamarin Updater 启动 VS2017 Preview(一切都已完全更新)
  2. 运行 Android SDK Manager 并安装以下内容

    Android SDK Tools 25.2.5
    Android SDK Platform-tools 26
    Android SDK Build-tools 26
    Android SDK Build-tools 25.0.3
    Android SDK Build-tools 25.0.2
    Android SDK Build-tools 25.0.1
    Android SDK Build-tools 25
    SDK Platform 25.3
    Android Support Repository 47
    Google Play Services 42
    Instant Apps Development SDK 1
    Google Play Licensing Library 1
    Google Play Billing Library 5
    Google USB Driver 11
    Google Web Driver 2
    Emulator 26
    
  3. 使用默认值(Xamarin.Forms - 空白应用程序 - 共享项目)创建一个新的跨平台 (App1),我不更改代码。

  4. 打开 App1.Android 属性

    Compile using Android version: Android 7.1 (Nougat)
    Package Name: App1
    Version number: 1
    Version name: 1.0
    Minimum Android version: Android 7.1 (API Level 25 - Nougat)
    Target Android version: Android 7.1 (API Level 25 - Nougat)
    Linking: Sdk Assemblies Only
    Everything else are default values
    
  5. 准备发布和构建:成功

  6. 存档:“LinkAssemblies”任务意外失败。

     Mono.Linker.MarkException: Error processing method: 'TNativeView Xamarin.Forms.Platform.Android.ViewRenderer'2::get_Control()' in assembly: 'Xamarin.Forms.Platform.Android.dll' ---> System.ArgumentNullException: Value cannot be null.
    Parameter name: instruction
       at Mono.Cecil.Cil.InstructionOffset..ctor(Instruction instruction)
       at Mono.Cecil.Cil.CodeReader.ReadScope(ScopeDebugInformation scope)
       at Mono.Cecil.Cil.CodeReader.ReadScopes(Collection'1 scopes)
       at Mono.Cecil.Cil.CodeReader.ReadScope(ScopeDebugInformation scope)
       at Mono.Cecil.Cil.CodeReader.ReadScopes(Collection'1 scopes)
       at Mono.Cecil.Cil.CodeReader.ReadScope(ScopeDebugInformation scope)
       at Mono.Cecil.Cil.CodeReader.ReadDebugInfo()
       at Mono.Cecil.Cil.CodeReader.ReadMethodBody()
       at Mono.Cecil.Cil.CodeReader.ReadMethodBody(MethodDefinition method)
       at Mono.Cecil.MethodDefinition.<>c.<get_Body>b__41_0(MethodDefinition method, MetadataReader reader)
       at Mono.Cecil.ModuleDefinition.Read[TItem,TRet](TRet& variable, TItem item, Func'3 read)
       at Mono.Cecil.MethodDefinition.get_Body()
       at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
       at Mono.Linker.Steps.MarkStep.ProcessQueue()
       --- End of inner exception stack trace ---
       at Mono.Linker.Steps.MarkStep.ProcessQueue()
       at Mono.Linker.Steps.MarkStep.Process()
       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(DirectoryAssemblyResolver res)
       at Xamarin.Android.Tasks.LinkAssemblies.Execute()
       at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
       at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
    

我哪里出错了?这么简单的空白模板应用,我怎么搞砸了?

【问题讨论】:

    标签: android xamarin.forms


    【解决方案1】:

    如果您转到 android 项目的“属性”选项卡并选择“Android 选项”,您将在标题“链接”下看到一个下拉列表,将其切换为“无”,然后重试。

    如果可行,请使用“仅 SDK 程序集”再次尝试。通常,当发现无法本地链接的内容时,您会收到该错误。

    【讨论】:

    • 使用Linking: None 确实可以成功构建和归档。使用Sdk Assemblies Only 再次尝试会成功构建,但链接步骤会失败并出现相同的错误。
    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 2020-01-27
    相关资源
    最近更新 更多