" LinkAssemblies"发布apk文件时,任务意外失败

时间:2016-08-08 11:02:21

标签: xamarin syncfusion

我正在使用Xamarin Forms开发移动应用程序。我能够在调试模式下部署应用程序,并且应用程序构建没有错误。我正在尝试在发布模式下发布apk但是低于错误。我使用了Syncfusion SFchart和SFGauge.Kindly帮助并找到以下错误描述:

C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(5,5): Error MSB4018: The "LinkAssemblies" task failed unexpectedly.
Xamarin.Android.XamarinAndroidException: error XA2006: Reference to metadata item 'System.Int32 Xamarin.Forms.Platform.Android.Resource/Attribute::actionBarSize' (defined in 'Syncfusion.SfGauge.XForms.Android, Version=14.2451.0.26, Culture=neutral, PublicKeyToken=null') from 'Syncfusion.SfGauge.XForms.Android, Version=14.2451.0.26, Culture=neutral, PublicKeyToken=null' could not be resolved. ---> Mono.Cecil.ResolutionException: Failed to resolve System.Int32 Xamarin.Forms.Platform.Android.Resource/Attribute::actionBarSize
at Mono.Linker.Steps.MarkStep.MarkField(FieldReference reference)
at Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction)
at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
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()
--- End of inner exception stack trace ---
at Xamarin.Android.Diagnostic.Error(Int32 code, Exception innerException, String message, Object[] args)
at Xamarin.Android.Tasks.LinkAssemblies.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() (MSB4018) (EWSMobile.Droid)

2 个答案:

答案 0 :(得分:2)

您的主要问题如下:

error XA2006: Reference to metadata item 'System.Int32 Xamarin.Forms.Platform.Android.Resource/Attribute::actionBarSize' (defined in 'Syncfusion.SfGauge.XForms.Android, Version=14.2451.0.26, Culture=neutral, PublicKeyToken=null') from 'Syncfusion.SfGauge.XForms.Android, Version=14.2451.0.26, Culture=neutral, PublicKeyToken=null' could not be resolved. ---> Mono.Cecil.ResolutionException: Failed to resolve System.Int32 Xamarin.Forms.Platform.Android.Resource/Attribute::actionBarSize

这表示找不到Attribute actionBarSizeResource.designer.cs文件中未包含Release Don't Link/None。为什么会发生这种情况有一些典型问题:

1)您没有针对最新的Android API进行编译(目前编写的API 23)

2)引用的库可能已过期,应根据最新的Android API进行更新和编译。 (目前为API 23)

3)如果您使用的是Xamarin.Forms,则应确保使用使用第三方库编译的版本。

https://developer.android.com/reference/android/R.attr.html#actionBarSize

作为额外的调试步骤:

1)将linkskip配置中的链接器设置设置为Linking

https://developer.xamarin.com/guides/android/advanced_topics/linking/#Linker_Behavior

如果它在这里工作,你知道一个类型正在从这个库中链接。

2)保留链接输出类型

您可以使用{{1}}链接到程序集:

https://developer.xamarin.com/guides/android/advanced_topics/linking/#linkskip

否则你可以在这里阅读一般{{1}}:

https://developer.xamarin.com/guides/android/advanced_topics/linking

答案 1 :(得分:2)

使用最新的Xamarin.Forms Nuget软件包(v 2.3.0.107)解决了问题,旧版本的Xamarin.Forms软件包出现了上述问题。

Subburaj Pandian V。