【问题标题】:AuthenticationAgentContinuationHelper - "Duplicate Java type found!"AuthenticationAgentContinuationHelper - “发现重复的 Java 类型!”
【发布时间】:2019-05-31 12:16:25
【问题描述】:

我正在使用 Xamarin.Forms 开发一个应用程序,该应用程序的第一个版本应该在 Windows 和 Android 上运行。 应该是Graph API来访问OneDrive/OneNote。

我已经设法在 UWP(通用 Windows 平台)下检索到登录用户的名称。 所以我尝试将相同的应用程序部署到 Android,其中调用与以下扩展非常相似:

  • UIParent 是必需的
  • AuthenticationAgentContinuationHelper.SetAuthenticationAgentContinuationEventArgs(requestCode, resultCode, data);需要打电话

UIParent 部分已经可以使用,但 AuthenticationAgentContinuationHelper 无法内置到应用中。

这里 Visual Studio 说:

Duplicate Java type found!
Mappings between managed types and Java types must be unique.
First Type:
'Microsoft.Identity.Client.Platforms.Android.SystemWebview.AuthenticationActivity, Microsoft.Identity.Client, Version=2.6.2.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae';
Second Type:
'Microsoft.Identity.Core.UI.SystemWebview.AuthenticationActivity, Microsoft.IdentityModel.Clients.ActiveDirectory, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

Xamarin 应用程序使用“.NET Standard”代码共享策略和 Visual Studio 中的空白模板作为新应用程序启动。正如我所读到的,这已经取代了“PCL”方式,在 VS2017 中无法选择。

您知道如何解决这个问题吗?

【问题讨论】:

  • 您是否同时使用了 Xamarin.Auth 和 MobileServices?什么是nuget版本?清理解决方案(如果需要,手动删除 obj 目录内容)并尝试重建

标签: azure facebook-graph-api xamarin.forms xamarin.android onedrive


【解决方案1】:

您确定需要 Microsoft.Identity.Client (MSAL) 和 Microsoft.IdentityModel.Clients.ActiveDirectory (ADAL) 包吗?

MSAL 用于针对 AAD v2 端点进行身份验证,而 ADAL 用于针对 AAD v1 端点进行身份验证,因此理论上您需要一个或另一个。

也许在某些情况下您需要两者,但我遇到了同样的错误,因为我使用 MSAL 进行身份验证,所以我卸载了 Microsoft.IdentityModel.Clients.ActiveDirectory nuget 包,一切都很好。

【讨论】:

    【解决方案2】:

    之所以出现此错误,是因为 MSAL 存储库与 ADAL 共享代码,而团队正在努力为 MSAL 和公共缓存带来功能奇偶校验。然后,将 MSAL 移回其原始存储库,但未更新 Android 和 iOS 命名空间,因此如果在同一项目中同时使用 ADAL 和 MSAL,则会出现冲突。 对于 iOS ViewController 类和 ADAL 4.5 对于 Android AuthenticationActivity 类,此问题已在 MSAL 2.7 中得到修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      相关资源
      最近更新 更多