Неисправность с помощью кнопки входа в систему Google в эмуляторе

Когда я нажимаю кнопку входа в систему Google, он показывает следующее диалоговое окно.

Enter image description here

Я нажимаю "Обновить", и ничего не происходит, но мой logcat дает следующий результат.

01-24 07:38:48.121: W/GooglePlayServicesUtil(1305): Google Play services out of date.  Requires 4132500 but found 4033530
01-24 07:38:50.321: E/SettingsRedirect(1305): Can't redirect to app settings for Google Play services

Как я могу заставить это работать на моем эмуляторе?

После этого я выполнил следующую команду, чтобы увидеть эту ошибку, и получил следующий вывод:

C:\adt-bundle-windows-x86_64-20130729\sdk\platform-tools>adb logcat -d -s Packag
eManager:*
--------- beginning of /dev/log/main
--------- beginning of /dev/log/system
W/PackageManager(  390): Running ENG build: no pre-dexopt!
D/PackageManager(  390): No files in app dir /vendor/app
W/PackageManager(  390): Package com.example.android.apis desires unavailable sh
ared library com.example.will.never.exist; ignoring!
W/PackageManager(  390): Package com.example.android.apis desires unavailable sh
ared library com.example.will.never.exist; ignoring!
I/PackageManager(  390): Time to scan packages: 5.417 seconds
W/PackageManager(  390): Not granting permission android.permission.GLOBAL_SEARC
H to package com.android.quicksearchbox (protectionLevel=18 flags=0x8be45)
W/PackageManager(  390): Unknown permission com.android.smspush.WAPPUSH_MANAGER_
BIND in package com.android.phone
W/PackageManager(  390): Unknown permission com.android.vending.billing.BILLING_
ACCOUNT_SERVICE in package com.google.android.gsf.login
W/PackageManager(  390): Unknown permission com.android.vending.billing.ADD_CRED
IT_CARD in package com.google.android.gsf.login
W/PackageManager(  390): Unknown permission com.android.vending.billing.IBilling
AccountService.BIND2 in package com.google.android.gsf.login
W/PackageManager(  390): Unknown permission com.android.vending.TOS_ACKED in pac
kage com.google.android.gsf.login
W/PackageManager(  390): Unknown permission com.android.chrome.TOS_ACKED in pack
age com.google.android.gsf.login
W/PackageManager(  390): Not granting permission android.permission.ACCESS_DOWNL
OAD_MANAGER to package com.android.browser (protectionLevel=18 flags=0x9be45)
W/PackageManager(  390): Not granting permission android.permission.SEND_DOWNLOA
D_COMPLETED_INTENTS to package com.android.browser (protectionLevel=2 flags=0x9b
e45)
W/PackageManager(  390): Not granting permission android.permission.BIND_APPWIDG
ET to package com.android.widgetpreview (protectionLevel=18 flags=0x8be44)
W/PackageManager(  390): Unknown permission android.permission.INSTALL_DRM in pa
ckage com.android.mms
W/PackageManager(  390): Not granting permission android.permission.DELETE_PACKA
GES to package com.svox.pico (protectionLevel=18 flags=0x8be45)
W/PackageManager(  390): Not granting permission android.permission.DEVICE_POWER
 to package com.android.deskclock (protectionLevel=2 flags=0x48be45)
W/PackageManager(  390): Not granting permission android.permission.READ_DREAM_S
TATE to package com.google.android.gsf (protectionLevel=2 flags=0x40083e45)
I/PackageManager(  390): No secure containers on sdcard
W/PackageManager(  390): Not granting permission android.permission.GLOBAL_SEARC
H to package com.android.quicksearchbox (protectionLevel=18 flags=0x8be45)
W/PackageManager(  390): Unknown permission com.android.smspush.WAPPUSH_MANAGER_
BIND in package com.android.phone
W/PackageManager(  390): Unknown permission com.android.vending.billing.BILLING_
ACCOUNT_SERVICE in package com.google.android.gsf.login
W/PackageManager(  390): Unknown permission com.android.vending.billing.ADD_CRED
IT_CARD in package com.google.android.gsf.login
W/PackageManager(  390): Unknown permission com.android.vending.billing.IBilling
AccountService.BIND2 in package com.google.android.gsf.login
W/PackageManager(  390): Unknown permission com.android.vending.TOS_ACKED in pac
kage com.google.android.gsf.login
W/PackageManager(  390): Unknown permission com.android.chrome.TOS_ACKED in pack
age com.google.android.gsf.login
W/PackageManager(  390): Not granting permission android.permission.ACCESS_DOWNL
OAD_MANAGER to package com.android.browser (protectionLevel=18 flags=0x9be45)
W/PackageManager(  390): Not granting permission android.permission.SEND_DOWNLOA
D_COMPLETED_INTENTS to package com.android.browser (protectionLevel=2 flags=0x9b
e45)
W/PackageManager(  390): Not granting permission android.permission.BIND_APPWIDG
ET to package com.android.widgetpreview (protectionLevel=18 flags=0x8be44)
W/PackageManager(  390): Unknown permission android.permission.INSTALL_DRM in pa
ckage com.android.mms
W/PackageManager(  390): Not granting permission android.permission.DELETE_PACKA
GES to package com.svox.pico (protectionLevel=18 flags=0x8be45)
W/PackageManager(  390): Not granting permission android.permission.DEVICE_POWER
 to package com.android.deskclock (protectionLevel=2 flags=0x48be45)
W/PackageManager(  390): Not granting permission android.permission.READ_DREAM_S
TATE to package com.google.android.gsf (protectionLevel=2 flags=0x40083e45)
I/PackageManager(  390):   Action: "android.intent.action.SENDTO"
I/PackageManager(  390):   Category: "android.intent.category.DEFAULT"
I/PackageManager(  390):   Scheme: "sms"
I/PackageManager(  390): Adding preferred activity ComponentInfo{com.android.mms
/com.android.mms.ui.ComposeMessageActivity} for user 0 :
I/PackageManager(  390):   Action: "android.intent.action.SENDTO"
I/PackageManager(  390):   Category: "android.intent.category.DEFAULT"
I/PackageManager(  390):   Scheme: "smsto"
I/PackageManager(  390): Adding preferred activity ComponentInfo{com.android.mms
/com.android.mms.ui.ComposeMessageActivity} for user 0 :
I/PackageManager(  390):   Action: "android.intent.action.SENDTO"
I/PackageManager(  390):   Category: "android.intent.category.DEFAULT"
I/PackageManager(  390):   Scheme: "mms"
I/PackageManager(  390): Adding preferred activity ComponentInfo{com.android.mms
/com.android.mms.ui.ComposeMessageActivity} for user 0 :
I/PackageManager(  390):   Action: "android.intent.action.SENDTO"
I/PackageManager(  390):   Category: "android.intent.category.DEFAULT"
I/PackageManager(  390):   Scheme: "mmsto"
I/PackageManager(  390): Adding preferred activity ComponentInfo{com.android.mms
/com.android.mms.ui.ComposeMessageActivity} for user 0 :
W/PackageManager(  390): Attempt to delete unknown system package com.android.ve
nding
W/PackageManager(  390): Attempt to delete unknown system package com.android.ve
nding
W/PackageManager(  390): Attempt to delete unknown system package com.google.and
roid.gms

C:\adt-bundle-windows-x86_64-20130729\sdk\platform-tools>

Что я должен сделать из этого?

Ответ 1

Я нашел решение на странице Как установить Google Maps v2 в Android-эмулятор.

Он работает только с Android 4.22, но я думаю, что та же идея может быть применена к версии 4.4 с соответствующими файлами.

  • Загрузите три файла, указанные на предыдущей странице: com.android.vending-19032013.apk, com.google.android.gms-19032013.apk и сервисы Google play lib r5.

  • Создайте AVD-устройство с нормальной целью (Android 4.22, API 17) с помощью Intel Atom (x86), если вы хотите использовать.

  • Установите два файла APK с консоли Android.

  • Создайте приложение для Android 4.22

  • НЕ ИСПОЛЬЗУЙТЕ систему google-play-services-lib вашей системы. Вы должны использовать третий загруженный файл.

Ответ 2

Эмулятор не поддерживает Google Play Services. Вот почему он бросает ошибку. Для разработки с использованием API-интерфейсов вам необходимо предоставить устройство разработки, такое как телефон или планшет Android.

Google Play services out of date.Requires 4132500 but found 4033530

Чтобы получить игровые сервисы в своем эмуляторе, вам необходимо установить APK файл самостоятельно.

Вот APK gms и vending файлы.

Установите оба файла APK с помощью команды ниже.

adb install com.android.vending-20130716.apk 
adb install com.google.android.gms-20130716.apk 

И если он уже установлен, чтобы обновить существующий эмулятор, вам нужно удалить предыдущие версии с помощью следующей команды, а затем снова установить:

adb uninstall com.android.vending
adb uninstall com.google.android.gms