我正在使用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)
答案 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
actionBarSize
或Resource.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。