PublicClientApplication.createMultipleAccountPublicClientApplication()
вызывает исключение MsalClientException на некоторых Android устройствах. На некоторых устройствах все работает нормально.
Приложение корпоративного портала Intune установлено на всех устройствах и действует как приложение-брокер. Представление приложения брокера не отображается на устройствах, затронутых проблемой.
В чем может быть причина, по которой он работает на некоторых устройствах, а не на других, хотя все они используют одну и ту же базу кода и имеют одно и то же приложение-брокер?
- Android Версия: 10
- Протестированные версии MSAL: 1.0.1 и 1.5.1
Трассировка стека:
com.microsoft.identity.client.exception.MsalClientException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
at com.microsoft.identity.client.internal.controllers.MsalExceptionAdapter.msalExceptionFromBaseException(MsalExceptionAdapter.java:51)
at com.microsoft.identity.client.PublicClientApplication$2.onError(PublicClientApplication.java:873)
at com.microsoft.identity.client.PublicClientApplication$2.onError(PublicClientApplication.java:870)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher$2.run(CommandDispatcher.java:176)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7860)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
Caused by: com.microsoft.identity.common.exception.ClientException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
at com.microsoft.identity.common.internal.controllers.ExceptionAdapter.baseExceptionFromException(ExceptionAdapter.java:252)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.executeCommand(CommandDispatcher.java:142)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.access$200(CommandDispatcher.java:52)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher$1.run(CommandDispatcher.java:94)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
at com.microsoft.identity.client.internal.controllers.BrokerMsalController$5.putValueInSuccessEvent(BrokerMsalController.java:412)
at com.microsoft.identity.client.internal.controllers.BrokerMsalController$5.putValueInSuccessEvent(BrokerMsalController.java:392)
at com.microsoft.identity.client.internal.controllers.BrokerMsalController.invokeBrokerOperation(BrokerMsalController.java:221)
at com.microsoft.identity.client.internal.controllers.BrokerMsalController.getDeviceMode(BrokerMsalController.java:391)
at com.microsoft.identity.common.internal.controllers.GetDeviceModeCommand.execute(GetDeviceModeCommand.java:44)
at com.microsoft.identity.common.internal.controllers.GetDeviceModeCommand.execute(GetDeviceModeCommand.java:33)
at com.microsoft.identity.common.internal.controllers.CommandDispatcher.executeCommand(CommandDispatcher.java:137)
… 5 more