2016-02-25 12 views
1

Я пытаюсь запустить пример приложения BMS для авторизации на основе GoogleBluemix: BMS-образцы-андроид-helloauthentication ошибка

https://github.com/ibm-bluemix-mobile-services/bms-samples-android-helloauthentication

Он работает на Android студии эмулятора после изменения targetSdkVersion 22 в build.gradle (у меня есть java.lang.SecurityException: Отсутствующие android.permission.GET_ACCOUNTS до изменения)

Я получил следующие ошибки на моем физическом устройстве, после нажатия кнопки «Ping Bluemix»:

02-25 12:32:49.446 30033-31086/com.ibm.helloauthentication E/mfpsdk.AuthorizationProcessManager: AuthorizationProcessManager.handleAuthorizationFailure in AuthorizationProcessManager.java:426 :: authorization process failed 
02-25 12:32:49.446 30033-31096/com.ibm.helloauthentication W/System.err:  at com.android.org.conscrypt.OpenSSLX509Certificate.checkValidity(OpenSSLX509Certificate.java:216) 
02-25 12:32:49.446 30033-31096/com.ibm.helloauthentication W/System.err:  at com.ibm.mobilefirstplatform.clientsdk.android.security.internal.certificate.CertificatesUtility.checkValidityWithPublicKey(CertificatesUtility.java:59) 
02-25 12:32:49.446 30033-31096/com.ibm.helloauthentication W/System.err:  at com.ibm.mobilefirstplatform.clientsdk.android.security.internal.AuthorizationProcessManager.saveCertificateFromResponse(AuthorizationProcessManager.java:214) 
02-25 12:32:49.446 30033-31096/com.ibm.helloauthentication W/System.err: ... 12 more 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity: Get request to Bluemix failed: THROWNjava.lang.RuntimeException: Failed to save certificate from response 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity:  at com.ibm.mobilefirstplatform.clientsdk.android.security.internal.AuthorizationProcessManager.saveCertificateFromResponse(AuthorizationProcessManager.java:222) 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity:  at com.ibm.mobilefirstplatform.clientsdk.android.security.internal.AuthorizationProcessManager.access$100(AuthorizationProcessManager.java:51) 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity:  at com.ibm.mobilefirstplatform.clientsdk.android.security.internal.AuthorizationProcessManager$1.handleAuthorizationSuccessResponse(AuthorizationProcessManager.java:133) 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity:  at com.ibm.mobilefirstplatform.clientsdk.android.security.internal.AuthorizationProcessManager$InnerAuthorizationResponseListener.onSuccess(AuthorizationProcessManager.java:469) 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity:  at com.ibm.mobilefirstplatform.clientsdk.android.security.internal.AuthorizationRequestAgent.processResponse(AuthorizationRequestAgent.java:388) 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity:  at com.ibm.mobilefirstplatform.clientsdk.android.security.internal.AuthorizationRequestAgent.processResponseWrapper(AuthorizationRequestAgent.java:542) 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity:  at com.ibm.mobilefirstplatform.clientsdk.android.security.internal.AuthorizationRequestAgent.onSuccess(AuthorizationRequestAgent.java:513) 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity:  at com.ibm.mobilefirstplatform.clientsdk.android.core.api.internal.BaseRequest$1.onResponse(BaseRequest.java:419) 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity:  at com.squareup.okhttp.Call$AsyncCall.execute(Call.java:170) 
02-25 12:32:49.451 30033-31096/com.ibm.helloauthentication E/MainActivity:  at com.squareup.okhttp.internal.NamedRunnable.run(NamedRunnable.java:33) 

Любые идеи?

+0

Невозможно воссоздать на моем конце либо физическое, либо эмулятор (см., Что проблема с SDK 23, которая была разрешена путем перехода к SDK 22). Может помочь, если вы можете запустить отладку и посмотреть, что такое ответ json, что он рушится. Похоже, у него проблемы с получением сертификата из ответа json. Используете ли вы одну учетную запись для входа на физическое устройство в качестве эмулятора? Может также помочь удалить сертификат на Bluemix и повторно добавить его. –

ответ

1

Обновлен этот образец, чтобы использовать правильную обработку разрешений, чтобы вы могли запускать его в SDK 23+ при условии предоставления разрешения при появлении запроса.

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