You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin应用面向Android 12.0(S)构建时出现XAGJS7009重复属性错误

Xamarin.Android 目标SDK设为Android 12触发XAGJS7009重复属性错误的解决方案

错误现象

开发Xamarin.Android应用时,将目标SDK版本指定为Android 12.0 (S) 时触发构建失败,报错信息如下:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(3,3): Error XAGJS7009: System.InvalidOperationException: Duplicate attribute.
      at System.Xml.Linq.XElement.AddAttributeSkipNotify (System.Xml.Linq.XAttribute a) [0x00030] in /Users/builder/jenkins/workspace/build-package-osx-mono/2020-02/external/bockbuild/builds/mono-x64/external/corefx/src/System.Private.Xml.Linq/src/System/Xml/Linq/XElement.cs:1929 
      at System.Xml.Linq.XContainer.AddContentSkipNotify (System.Object content) [0x00032] in /Users/builder/jenkins/workspace/build-package-osx-mono/2020-02/external/bockbuild/builds/mono-x64/external/corefx/src/System.Private.Xml.Linq/src/System/Xml/Linq/XContainer.cs:486 
      at System.Xml.Linq.XContainer.Add (System.Object content) [0x00008] in /Users/builder/jenkins/workspace/build-package-osx-mono/2020-02/external/bockbuild/builds/mono-x64/external/corefx/src/System.Private.Xml.Linq/src/System/Xml/Linq/XContainer.cs:140 
      at Xamarin.Android.Tasks.ManifestDocument.AddLauncherIntentElements (System.Xml.Linq.XElement activity) [0x0004e] in <256050d9b61b4848876345a052636c75>:0 
      at Xamarin.Android.Tasks.ManifestDocument+<>c__DisplayClass99_0.<ActivityFromTypeDefinition>b__1 (Android.App.ActivityAttribute aa, System.Xml.Linq.XElement element) [0x00008] in <256050d9b61b4848876345a052636c75>:0 
      at Xamarin.Android.Tasks.ManifestDocument.ToElement[TAttribute] (Mono.Cecil.TypeDefinition type, System.String name, System.Func`2[T,TResult] parser, System.Func`2[T,TResult] toElement, System.Action`2[T1,T2] update) [0x0007d] in <256050d9b61b4848876345a052636c75>:0 
      at Xamarin.Android.Tasks.ManifestDocument.ActivityFromTypeDefinition (Mono.Cecil.TypeDefinition type, System.String name, System.Int32 targetSdkVersion) [0x00043] in <256050d9b61b4848876345a052636c75>:0 
      at Xamarin.Android.Tasks.ManifestDocument.Merge (Microsoft.Build.Utilities.TaskLoggingHelper log, Java.Interop.Tools.Cecil.TypeDefinitionCache cache, System.Collections.Generic.List`1[T] subclasses, System.String applicationClass, System.Boolean embed, System.String bundledWearApplicationName, System.Collections.Generic.IEnumerable`1[T] mergedManifestDocuments) [0x004c2] in <256050d9b61b4848876345a052636c75>:0 
      at Xamarin.Android.Tasks.GenerateJavaStubs.Run (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver res) [0x00766] in <256050d9b61b4848876345a052636c75>:0 
      at Xamarin.Android.Tasks.GenerateJavaStubs.RunTask () [0x0000e] in <256050d9b61b4848876345a052636c75>:0 
      at Microsoft.Android.Build.Tasks.AndroidTask.Execute () [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:17  (XAGJS7009) (AppName.UI.Droid)

根因说明

Android 12(API 31)新增强制要求:所有声明了intent-filter的四大组件(Activity、Service、BroadcastReceiver)必须显式配置android:exported属性。Xamarin.Android构建时会自动为所有标记了[Activity]/[Service]/[BroadcastReceiver]特性的组件补充该属性,当存在以下任意一种情况时,就会触发重复属性报错:

  1. 同时在C#特性和AndroidManifest.xml中为同一个组件配置了相同属性
  2. 旧版本Xamarin.Android工具存在bug,自动生成属性时重复添加
  3. 依赖的第三方NuGet包未适配Android 12,内部配置了重复属性

排查解决步骤

  • 统一属性配置入口:检查所有标记了[Activity]/[Service]/[BroadcastReceiver]特性的类,尤其是主入口Activity,确保没有同时在C#特性和AndroidManifest.xml中配置同一个属性,优先保留C#特性中的配置,删除AndroidManifest.xml中对应的重复属性配置即可。

示例:如果C#中已经写了[Activity(Label = "MyApp", MainLauncher = true, Exported = true)],就不要在AndroidManifest.xml的对应Activity节点中再添加android:exported="true"、android:label="MyApp"等同名属性。

  • 清理重复的IntentFilter配置:不要同时在C#的[IntentFilter]特性和AndroidManifest.xml中为同一个组件配置相同的intent-filter规则,只保留一处即可。
  • 升级Xamarin相关工具:将Visual Studio、Xamarin.Android SDK升级到最新稳定版,修复旧版本工具自动生成属性时的重复添加bug。
  • 清理构建缓存:删除项目Android平台下的bin、obj文件夹后重新构建,避免旧的缓存中间文件导致的合并冲突。
  • 升级第三方依赖:将项目中所有Xamarin.Android相关的NuGet包升级到最新适配Android 12的版本,排除第三方库硬编码重复属性的问题。

内容的提问来源于stack exchange,提问作者Amin Keshavarzian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:54:08