Сервис не зарегистрирован в библиотеке аутентификации Microsoft (Android) - PullRequest
0 голосов
/ 04 июня 2019

Я использую модифицированную версию примера приложения из библиотеки MSAL Android, и в течение последних нескольких недель она работала как чудо, но только вчера она начала падать на меня, выдавая мне эту ошибку:

2019-06-04 15: 22: 07.807 20645-20645 / com.example.myApp E / AndroidRuntime: FATAL

ИСКЛЮЧЕНИЕ: основной Процесс: com.example.myApp, PID: 20645 java.lang.RuntimeException: не удается возобновить действие {com.example.myApp / com.example.myApp.Activities.LoginActivity}: java.lang.RuntimeException: сбой при доставке результата ResultInfo {who = null, request = 1001, result = 2003, data = Intent{(имеет дополнительные функции)}} к деятельности {com.example.myApp / com.example.myApp.Activities.LoginActivity}: java.lang.IllegalArgumentException: служба не зарегистрирована: com.microsoft.identity.common.internal.ui.browser.CustomTabsManager $ 1 @ f965d28 на android.app.ActivityThread.performResumeActivity (ActivityThread.java:3961) на android.app.ActivityThread.handleResumeActivity (ActivityThread.java:3993) на android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:51) в android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:145) в android.app.servertransaction.TransactionExecutor.execute (TransactionExapp.jecutor).ActivityThread $ H.handleMessage (ActivityThread.java:1934) в android.os.Handler.dispatchMessage (Handler.java:106) в android.os.Looper.loop (Looper.java:193) в android.app.ActivityThread.main (ActivityThread.java:6940) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:537) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858) Вызвано: java.lang.RuntimeException: ошибка доставки результата ResultInfo {who = null, request = 1001, result = 2003, data = Intent {(extras)}} для активности{com.example.myApp / com.example.myApp.Activities.LoginActivity}: java.lang.IllegalArgumentException: служба не зарегистрирована: com.microsoft.identity.common.internal.ui.browser.CustomTabsManager $ 1 @ f965d28

Я ничего не изменил с логикой работы примера приложения.Единственное, что я сделал, это переместил логику входа в отдельный статический класс.

Код по-прежнему работает с большинством телефонов и даже с эмуляторами, но я больше не могу заставить его работать с моим Oneplus 6.Кто-нибудь сталкивался с этим раньше?

Это просто странно, потому что я ничего не изменил, и он неожиданно перестал работать.

Эта строка кода вызывает сбой:

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    app?.handleInteractiveRequestRedirect(requestCode, resultCode, data)
}

1 Ответ

0 голосов
/ 06 июня 2019

Я нашел обходной путь для тех, у кого может быть такая же проблема, как и у меня. Первоначально я использовал метод по умолчанию для обработки процесса аутентификации (через Intents и BrowserTab).

Другой способ аутентификации - отредактировать файл auth_config.json в папке Raw и изменить агент пользователя на этот "authorization_user_agent": "WEBVIEW". Вам придется работать с WebView вместо браузера, но это предотвращает сбой приложения. Вам также не понадобятся фильтры намерений в файле AndroidManifest, если вы собираетесь пойти по этому пути.

PS: Я все еще не могу точно определить, из-за чего мой телефон зависал. Я смог протестировать свое приложение на Galaxy S9, а также на эмуляторах, и все они работают. Мой личный телефон работал до недавнего времени и именно это побудило меня опубликовать здесь. Если я найду причину, я обновлю этот ответ.

...