Azure AuthenticationAgentContinuationHelper-“身份验证代理程序”;找到重复的Java类型&引用;

Azure AuthenticationAgentContinuationHelper-“身份验证代理程序”;找到重复的Java类型&引用;,azure,facebook-graph-api,xamarin.forms,xamarin.android,onedrive,Azure,Facebook Graph Api,Xamarin.forms,Xamarin.android,Onedrive,我正在用Xamarin.Forms开发一个应用程序,第一个版本的应用程序应该在Windows和Android上运行。 应使用图形API访问OneDrive/OneNote 我已经设法在UWP(通用Windows平台)下检索登录用户的名称。 因此,我尝试将同一个应用程序部署到Android,在Android中,调用与以下扩展非常相似: 这是必要的 AuthenticationAgentContinuationHelper.SetAuthenticationAgentContinuationEve

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

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

  • 这是必要的
  • AuthenticationAgentContinuationHelper.SetAuthenticationAgentContinuationEventArgs(请求代码、结果代码、数据);打电话是必要的
UIParent部件已经工作,但无法将AuthenticationAgentContinuationHelper内置到应用程序中

这里VisualStudio说:

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应用程序是作为新应用程序启动的,它使用Visual Studio中带有空白模板的“.NET标准”代码共享策略。正如我所读到的,这已经取代了VS2017中无法选择的“PCL”方式


您知道如何解决此问题吗?

您确定同时需要Microsoft.Identity.Client(MSAL)和Microsoft.Identity.Client.ActiveDirectory(ADAL)软件包吗

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


也许在某些情况下,你需要两者兼而有之,但我遇到了同样的错误,当我使用MSAL进行身份验证时,我卸载了Microsoft.IdentityModel.Clients.ActiveDirectory nuget包,一切正常。

此错误开始是因为MSAL repo与ADAL共享代码,而团队正致力于将功能奇偶校验引入MSAL和公共缓存。然后,MSAL被移回其原始repo,但Android和iOS名称空间没有更新,因此如果在同一项目中同时使用ADAL和MSAL,则会发生冲突。
对于iOS ViewController类和Android AuthenticationActivity类,这一问题已经得到解决。

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