Java 类型“javax.inject.Inject”由多个托管类型生成。请更改 [注册] 属性
The Java type `javax.inject.Inject` is generated by more than one managed type. Please change the [Register] attribute
已将 Xamarin.Android 项目迁移到 AndroidX,并且必须更新一些包。现在我无法构建我的项目并收到以下错误消息:
`javax.inject.Named` generated by: JavaX.Inject.INamed, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Scope` generated by: Javax.Inject.IScope, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Qualifier` generated by: JavaX.Inject.IQualifier, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The Java type `javax.inject.Inject` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
`javax.inject.Provider` generated by: JavaX.Inject.IProvider, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Inject` generated by: JavaX.Inject.IInject, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Qualifier` generated by: Javax.Inject.IQualifier, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The Java type `javax.inject.Provider` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
`javax.inject.Scope` generated by: JavaX.Inject.IScope, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Named` generated by: Javax.Inject.INamed, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The Java type `javax.inject.Scope` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
`javax.inject.Provider` generated by: Javax.Inject.IProvider, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Singleton` generated by: JavaX.Inject.ISingleton, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Inject` generated by: Javax.Inject.IInject, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The Java type `javax.inject.Named` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
The Java type `javax.inject.Qualifier` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
`javax.inject.Singleton` generated by: Javax.Inject.ISingleton, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The Java type `javax.inject.Singleton` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
请告知如何修复它或如何更改 [Register] 属性以及需要在哪里完成。我无法删除这些包,其他包依赖于它们。
在 migration 之后,我们需要针对该工具未涵盖的场景进行一些手动命名空间更改。
AndroidX 替换了 Android support libraries
,因此对 Android 支持库类型的任何引用都必须替换为对 AndroidX 类型的引用。
以下table显示命名空间的变化
Android support library namespace
AndroidX namespace
Android.Support.V4.App
AndroidX.Core.App
Android.Support.V4.Content
AndroidX.Core.Content
Android.Support.V4.App
AndroidX.Fragment.App
Android.Support.V7.App
AndroidX.AppCompat.App
Android.Support.V7.Widget
AndroidX.AppCompat.Widget
更多:https://github.com/xamarin/AndroidX/blob/main/mappings/androidx-class-mapping.csv.
有关详细信息,请参阅链接:
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/android/androidx-migration
更新
删除所有包并重新添加到项目中。
已将 Xamarin.Android 项目迁移到 AndroidX,并且必须更新一些包。现在我无法构建我的项目并收到以下错误消息:
`javax.inject.Named` generated by: JavaX.Inject.INamed, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Scope` generated by: Javax.Inject.IScope, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Qualifier` generated by: JavaX.Inject.IQualifier, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The Java type `javax.inject.Inject` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
`javax.inject.Provider` generated by: JavaX.Inject.IProvider, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Inject` generated by: JavaX.Inject.IInject, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Qualifier` generated by: Javax.Inject.IQualifier, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The Java type `javax.inject.Provider` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
`javax.inject.Scope` generated by: JavaX.Inject.IScope, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Named` generated by: Javax.Inject.INamed, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The Java type `javax.inject.Scope` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
`javax.inject.Provider` generated by: Javax.Inject.IProvider, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Singleton` generated by: JavaX.Inject.ISingleton, Xamarin.JavaX.Inject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
`javax.inject.Inject` generated by: Javax.Inject.IInject, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The Java type `javax.inject.Named` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
The Java type `javax.inject.Qualifier` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
`javax.inject.Singleton` generated by: Javax.Inject.ISingleton, Scanbot.Xamarin.SDK.Dependencies, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
The Java type `javax.inject.Singleton` is generated by more than one managed type. Please change the [Register] attribute so that the same Java type is not emitted.
请告知如何修复它或如何更改 [Register] 属性以及需要在哪里完成。我无法删除这些包,其他包依赖于它们。
在 migration 之后,我们需要针对该工具未涵盖的场景进行一些手动命名空间更改。
AndroidX 替换了 Android support libraries
,因此对 Android 支持库类型的任何引用都必须替换为对 AndroidX 类型的引用。
以下table显示命名空间的变化
Android support library namespace | AndroidX namespace |
---|---|
Android.Support.V4.App | AndroidX.Core.App |
Android.Support.V4.Content | AndroidX.Core.Content |
Android.Support.V4.App | AndroidX.Fragment.App |
Android.Support.V7.App | AndroidX.AppCompat.App |
Android.Support.V7.Widget | AndroidX.AppCompat.Widget |
更多:https://github.com/xamarin/AndroidX/blob/main/mappings/androidx-class-mapping.csv.
有关详细信息,请参阅链接:
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/android/androidx-migration
更新
删除所有包并重新添加到项目中。