Вход в Google не работает только на (некоторых) устройствах Xiaomi

Я использую Google Sign In в своем приложении. Я использую сервисы Google Play версии 9.0.2

compile 'com.google.android.gms:play-services-plus:9.0.2'

Он работал нормально на всех устройствах, но теперь я получаю журналы сбоев от Crashlytics, и сбой происходит только на устройствах Xiaomi. Вот журналы сбоев.

    Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.eterno/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}: java.lang.IllegalStateException: Bad magic number for Bundle: 0xffff4f45
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2423)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483)
       at android.app.ActivityThread.access$900(ActivityThread.java:153)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5441)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
Caused by java.lang.IllegalStateException: Bad magic number for Bundle: 0xffff4f45
       at android.os.Parcel.readException(Parcel.java:1628)
       at android.os.Parcel.readException(Parcel.java:1573)
       at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2661)
       at android.app.Instrumentation.execStartActivity(Instrumentation.java:1509)
       at android.app.Activity.startActivityForResult(Activity.java:3978)
       at android.app.Activity.startActivityForResult(Activity.java:3939)
       at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:842)
       at com.google.android.gms.auth.api.signin.internal.SignInHubActivity.zza(Unknown Source)
       at com.google.android.gms.auth.api.signin.internal.SignInHubActivity.onCreate(Unknown Source)
       at android.app.Activity.performCreate(Activity.java:6303)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483)
       at android.app.ActivityThread.access$900(ActivityThread.java:153)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5441)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)

Я не могу воспроизвести сбой ни на одном из тестовых устройств, которые мы можем использовать локально. Кто-нибудь еще сталкивался с этой проблемой на устройствах Xiaomi? Кроме того, поможет ли обновление версии сервисов Google Play решить проблему?

P.S. Я не прикрепляю фрагменты кода, которые я написал для входа в Google, потому что он работает на всех других устройствах. Похоже, это конкретная проблема, связанная с устройствами Xiaomi.


person thedarkpassenger    schedule 16.01.2017    source источник
comment
Это происходит и с моим приложением. В настоящее время используется сервис Google Play v9.2.1. Я даже отправляю скомпилированный APK официального приложения Google для входа, и это тоже не удалось. Любые решения? Xiaomi MIUI действительно очень глючная. Я использовал его раньше.   -  person neobie    schedule 16.02.2017
comment
Взгляните на эту статистику. 100% сбой с телефоном Xiaomi. imgh.us/Screen_Shot_2017-02-16_at_8.18.27_PM.png   -  person neobie    schedule 16.02.2017
comment
Мне кажется, что возвращаемый результат аутентификации равен нулю: GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);   -  person neobie    schedule 16.02.2017


Ответы (2)


Проверьте версию приложения playService на устройстве

person Pavan Deshpande    schedule 17.01.2017
comment
Мы уже делаем эту проверку. Если версия сервисов Google Play несовместима, появится диалоговое окно для обновления сервисов Google Play. - person thedarkpassenger; 18.01.2017

У меня была такая же проблема в моем коде. Я обнаружил, что выпуск приложения не работает на тех устройствах Xiaomi, на которых установлена ​​отладочная сборка.

Я попробовал приложение той же версии, не изменив ни одной строки кода на другом телефоне Xiaomi Android, и обнаружил, что приложение работает нормально.

Я не пробовал, но вполне возможно, что сброс устройств Xiaomi решит эту проблему.

person Community    schedule 19.01.2017
comment
Да, он не работает только на некоторых устройствах, таких как Redmi Note 3 с установленной ОС Android 5.1. - person thedarkpassenger; 20.01.2017
comment
У меня возникает аналогичная проблема, когда вход в систему отлично работает в сборке отладки, но не работает в сборке выпуска. Вы нашли решение этой конкретной проблемы? Спасибо. - person nickpharris; 01.08.2017