服务未注册:com.microsoft.identity.common.internal.ui.browser.CustomTabsManager$1@4af7a6e
Service not registered: com.microsoft.identity.common.internal.ui.browser.CustomTabsManager$1@4af7a6e
我在 android 应用程序中使用 msal 库,但在许多设备上都会发生此崩溃
我的用户代理不能是 WEBVIEW
Fatal Exception: java.lang.IllegalArgumentException: Service not registered: com.microsoft.identity.common.internal.ui.browser.CustomTabsManager@4af7a6e
at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1160)
at android.app.ContextImpl.unbindService(ContextImpl.java:1475)
at android.content.ContextWrapper.unbindService(ContextWrapper.java:644)
at com.microsoft.identity.common.internal.ui.browser.CustomTabsManager.unbind(CustomTabsManager.java:164)
at com.microsoft.identity.common.internal.ui.browser.BrowserAuthorizationStrategy.dispose(BrowserAuthorizationStrategy.java:182)
at com.microsoft.identity.common.internal.ui.browser.BrowserAuthorizationStrategy.completeAuthorization(BrowserAuthorizationStrategy.java:157)
at com.microsoft.identity.common.internal.controllers.LocalMSALController.completeAcquireToken(LocalMSALController.java:258)
at com.microsoft.identity.common.internal.commands.InteractiveTokenCommand.notify(InteractiveTokenCommand.java:77)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.completeInteractive(CommandDispatcher.java:608)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.access00(CommandDispatcher.java:83)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.onReceive(CommandDispatcher.java:565)
at androidx.localbroadcastmanager.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:313)
at androidx.localbroadcastmanager.content.LocalBroadcastManager.handleMessage(LocalBroadcastManager.java:121)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
这是我的 json 配置文件。
"client_id": "client_id",
"authorization_user_agent": "BROWSER",
"account_mode": "MULTIPLE",
"redirect_uri": "redirect_uri",
"authorities": [
{
"type": "B2C",
"authority_url": "authority_url",
"default": true
},
{
"type": "B2C",
"authority_url": "authority_url"
}
],
"browser_safelist": [
{
"browser_package_name": "com.mi.globalbrowser",
"browser_signature_hashes": [
"g7zGEnZipieE6ZyBA4Bz00kxU8h0F9QTwPLL-dnRVwngI0FJWJiD3rCEJsIQ_VK064SNdxzqggnnnAqT8LI89A=="
]
}
]
}
下面列出了一些发生崩溃的设备
moto g(6) 播放
moto z3 play
Moto G(4) Plus
LG K40S
LG Q60
ZenFone Max Shot (ZB634KL)
还有许多其他未在此处列出的,包括小米、三星和 onePlus
这是 microsoft-authentication-library-for-android 中的已知错误。
您可以通过编辑 Raw 文件夹中的 auth_config.json
文件进行身份验证,并将用户代理更改为此 authorized_user_agent
:WEBVIEW
.
您可以使用 Webview 而不是浏览器对用户进行身份验证,这样您的应用就不会崩溃。
看看这个 pull-request。
我将 MSAL 更新到 2.2.1 版,现在它工作正常。
我在 android 应用程序中使用 msal 库,但在许多设备上都会发生此崩溃
我的用户代理不能是 WEBVIEW
Fatal Exception: java.lang.IllegalArgumentException: Service not registered: com.microsoft.identity.common.internal.ui.browser.CustomTabsManager@4af7a6e
at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1160)
at android.app.ContextImpl.unbindService(ContextImpl.java:1475)
at android.content.ContextWrapper.unbindService(ContextWrapper.java:644)
at com.microsoft.identity.common.internal.ui.browser.CustomTabsManager.unbind(CustomTabsManager.java:164)
at com.microsoft.identity.common.internal.ui.browser.BrowserAuthorizationStrategy.dispose(BrowserAuthorizationStrategy.java:182)
at com.microsoft.identity.common.internal.ui.browser.BrowserAuthorizationStrategy.completeAuthorization(BrowserAuthorizationStrategy.java:157)
at com.microsoft.identity.common.internal.controllers.LocalMSALController.completeAcquireToken(LocalMSALController.java:258)
at com.microsoft.identity.common.internal.commands.InteractiveTokenCommand.notify(InteractiveTokenCommand.java:77)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.completeInteractive(CommandDispatcher.java:608)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.access00(CommandDispatcher.java:83)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.onReceive(CommandDispatcher.java:565)
at androidx.localbroadcastmanager.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:313)
at androidx.localbroadcastmanager.content.LocalBroadcastManager.handleMessage(LocalBroadcastManager.java:121)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
这是我的 json 配置文件。
"client_id": "client_id",
"authorization_user_agent": "BROWSER",
"account_mode": "MULTIPLE",
"redirect_uri": "redirect_uri",
"authorities": [
{
"type": "B2C",
"authority_url": "authority_url",
"default": true
},
{
"type": "B2C",
"authority_url": "authority_url"
}
],
"browser_safelist": [
{
"browser_package_name": "com.mi.globalbrowser",
"browser_signature_hashes": [
"g7zGEnZipieE6ZyBA4Bz00kxU8h0F9QTwPLL-dnRVwngI0FJWJiD3rCEJsIQ_VK064SNdxzqggnnnAqT8LI89A=="
]
}
]
}
下面列出了一些发生崩溃的设备
moto g(6) 播放
moto z3 play
Moto G(4) Plus
LG K40S
LG Q60
ZenFone Max Shot (ZB634KL)
还有许多其他未在此处列出的,包括小米、三星和 onePlus
这是 microsoft-authentication-library-for-android 中的已知错误。
您可以通过编辑 Raw 文件夹中的 auth_config.json
文件进行身份验证,并将用户代理更改为此 authorized_user_agent
:WEBVIEW
.
您可以使用 Webview 而不是浏览器对用户进行身份验证,这样您的应用就不会崩溃。
看看这个 pull-request。
我将 MSAL 更新到 2.2.1 版,现在它工作正常。