Azure ad b2c Azure AD B2C错误:尝试调用虚拟方法';long java.lang.long.longValue()';关于空对象引用

Azure ad b2c Azure AD B2C错误:尝试调用虚拟方法';long java.lang.long.longValue()';关于空对象引用,azure-ad-b2c,Azure Ad B2c,我在实现Azure AD B2C时遇到了一个问题。我正在尝试运行一个Android应用程序的测试,看看它是否能按我需要的方式运行。我意识到还有很多其他的需求可以帮助诊断这个问题,但我希望有人也经历过同样的问题。我只找到了似乎不起作用的。我确实运行过一次,但想在另一个租户中重新创建它,并再次遇到问题。这看起来像是AAD租户配置问题,因为代码几乎完全相同并且取自。当我看到登录屏幕并按“登录”后,这些都在logcat中: 在AAD方面,我有一个租户、一个应用程序、其中定义的Android平台和一个范围

我在实现Azure AD B2C时遇到了一个问题。我正在尝试运行一个Android应用程序的测试,看看它是否能按我需要的方式运行。我意识到还有很多其他的需求可以帮助诊断这个问题,但我希望有人也经历过同样的问题。我只找到了似乎不起作用的。我确实运行过一次,但想在另一个租户中重新创建它,并再次遇到问题。这看起来像是AAD租户配置问题,因为代码几乎完全相同并且取自。当我看到登录屏幕并按“登录”后,这些都在logcat中:

在AAD方面,我有一个租户、一个应用程序、其中定义的Android平台和一个范围。根据错误:

  • 首选用户名不是从IdToken返回的
  • 备用帐户id为空
看来我对返回的令牌有问题。还有这个:

  • 尝试对空对象引用调用虚拟方法“long java.lang.long.longValue()”
可能是因为返回的令牌存在一些问题

任何帮助都将不胜感激

更新StackTrace的附加信息

W/System.err: at com.microsoft.identity.common.internal.cache.MicrosoftStsAccountCredentialAdapter.getExpiresOn(MicrosoftStsAccountCredentialAdapter.java:289)
W/System.err: at com.microsoft.identity.common.internal.cache.MicrosoftStsAccountCredentialAdapter.createAccessToken(MicrosoftStsAccountCredentialAdapter.java:79)
W/System.err: at com.microsoft.identity.common.internal.cache.MicrosoftStsAccountCredentialAdapter.createAccessToken(MicrosoftStsAccountCredentialAdapter.java:53)
W/System.err: at com.microsoft.identity.common.internal.cache.MsalOAuth2TokenCache.save(MsalOAuth2TokenCache.java:284)
W/System.err: at com.microsoft.identity.common.internal.cache.MsalOAuth2TokenCache.saveAndLoadAggregatedAccountData(MsalOAuth2TokenCache.java:443)
W/System.err: at com.microsoft.identity.common.internal.controllers.BaseController.saveTokens(BaseController.java:532)
W/System.err: at com.microsoft.identity.common.internal.controllers.LocalMSALController.acquireToken(LocalMSALController.java:177)
W/System.err: at com.microsoft.identity.common.internal.commands.InteractiveTokenCommand.execute(InteractiveTokenCommand.java:67)
W/System.err: at com.microsoft.identity.common.internal.commands.InteractiveTokenCommand.execute(InteractiveTokenCommand.java:39)
W/System.err: at com.microsoft.identity.common.internal.controllers.CommandDispatcher.executeCommand(CommandDispatcher.java:279)
检查getExpiresOn

就是我找到解决方案的地方。我按照说明创建了一个作用域,添加了权限,并为租户授予了管理员许可,这一切都很顺利

我仍然不知道为什么需要所有这些,或者,除了这篇文章之外,它在哪里被记录和解释

我想我对把这样的东西投入生产有点紧张

W/System.err: at com.microsoft.identity.common.internal.cache.MicrosoftStsAccountCredentialAdapter.getExpiresOn(MicrosoftStsAccountCredentialAdapter.java:289)
W/System.err: at com.microsoft.identity.common.internal.cache.MicrosoftStsAccountCredentialAdapter.createAccessToken(MicrosoftStsAccountCredentialAdapter.java:79)
W/System.err: at com.microsoft.identity.common.internal.cache.MicrosoftStsAccountCredentialAdapter.createAccessToken(MicrosoftStsAccountCredentialAdapter.java:53)
W/System.err: at com.microsoft.identity.common.internal.cache.MsalOAuth2TokenCache.save(MsalOAuth2TokenCache.java:284)
W/System.err: at com.microsoft.identity.common.internal.cache.MsalOAuth2TokenCache.saveAndLoadAggregatedAccountData(MsalOAuth2TokenCache.java:443)
W/System.err: at com.microsoft.identity.common.internal.controllers.BaseController.saveTokens(BaseController.java:532)
W/System.err: at com.microsoft.identity.common.internal.controllers.LocalMSALController.acquireToken(LocalMSALController.java:177)
W/System.err: at com.microsoft.identity.common.internal.commands.InteractiveTokenCommand.execute(InteractiveTokenCommand.java:67)
W/System.err: at com.microsoft.identity.common.internal.commands.InteractiveTokenCommand.execute(InteractiveTokenCommand.java:39)
W/System.err: at com.microsoft.identity.common.internal.controllers.CommandDispatcher.executeCommand(CommandDispatcher.java:279)