2017-07-06 129 views
1

我正在朝着我的第一个Android应用程序工作,并遇到麻烦。我正在尝试构建和存档最简单的Android应用程序,但无法使存档步骤起作用。非常简单的Xamarin.Forms应用程序不会存档

下面是我在做什么...

  1. 开始VS2017预览与Xamarin预览扩展和Xamarin更新程序(一切完全更新)
  2. 运行Android SDK管理器并安装以下

    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 Poperties

    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() 
    

我要去哪里错了?我怎么能搞砸这样一个简单的空白模板应用程序?

回答

0

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

如果这样做,然后再次尝试'SDK Assemblies Only'。通常,如果发现某些无法本地链接的错误,则会发生该错误。

+0

使用'Linking:None'确实能够成功构建和存档。用'Sdk Assemblies Only'再次尝试会导致构建成功,链接步骤会失败,同时出现相同的确切错误。 – davecove