Сервисы Google Play в эмуляторе, кнопка входа в Google Plus и т. Д.

При интеграции кнопки входа в Google Plus в приложении Android я наблюдаю некоторые отличия в том, как кнопка отображается на самом устройстве и в эмуляторе. Мне известно о том, что APK-сервисы Google Plus не установлены в эмуляторе, но это можно обойти, вытащив APK с устройства и установив их в эмулятор с помощью APK.

Моя текущая «реализация» просто включает кнопку входа в макет, обращаясь к кнопке со следующим кодом XML:

<com.google.android.gms.common.SignInButton android:id="@+id/sign_in_button" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

Когда я тестирую свое приложение на устройстве, кнопка отображается красным и блестящим в соответствии с рекомендациями, указанными здесь https://developers.google.com/+/mobile/android/sign-in . Но при работе на эмуляторе это обычная кнопка (серый фон с черным текстом), говорящий «Войдите в Google».

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

Обновление: найден ключ в logcat; Сообщение «Кнопка входа не найдена, вместо этого вместо этого используется заполнитель». В значительной степени объясняет, почему я вижу серые тупые кнопки на эмуляторе. Все еще нужно выяснить, почему; Может быть «копировать google plus apk с устройства», взлом не работает должным образом.

Solutions Collecting From Web of "Сервисы Google Play в эмуляторе, кнопка входа в Google Plus и т. Д."

Службы Google Play работают с версиями 4.2.2 Android-эмулятора Android и официально поддерживаются, как описано в документации на Android: Настройка служб Google Play .

Обновить

Теперь вы можете использовать изображения Intel / x86 (совместимые с HAXM) для API 19 и новее, а для ARM службы Google Play доступны на большинстве изображений.

Настройка изображения

Чтобы получить правильное изображение для вашего менеджера виртуальных устройств:

  • Откройте Android SDK Manager
  • Откройте группу Android 4.2.2 (API 17)
  • Проверка API Google
  • Проверьте изображение системы ARM EABI v7a

Введите описание изображения здесь

Чтобы создать виртуальное устройство:

  • Откройте Диспетчер виртуальных устройств Android
  • Создать новое устройство
  • Введите имя AVD
  • Установите цель для API Google (Google Inc.) – уровень API 17
  • Сохраните свое виртуальное устройство и запустите его …

Примечание. CPU / ABI будет фиксироваться как ARM

Введите описание изображения здесь

Теперь вы должны иметь возможность использовать Службы Google Play в эмуляторе. Следует отметить, что вам нужно правильно настроить свою целевую аудиторию в своем проекте Android для API Google, чтобы работать в Google Play Services.

Я пробовал большинство комбинаций запуска эмулятора, но с API-интерфейсом Google и без него, что означает, что я тестировал с режимами x86 и arm. Я не нашел способа заставить апка вытащить из моего телефона Galaxy Nexus правильно работать на эмуляторе.

Угадав, что это связано с тем, чтобы запустить Play Store, я решил попробовать это, чтобы узнать, есть ли у меня больше удачи. Я не; Не мог заставить это работать. Значки Play Store отображаются и могут запускаться, но он немедленно закрывается.

Однако, что было сделано для загрузки и установки apks в нижней части страницы здесь:

http://umut.tekguc.info/en/content/google-android-map-v2-step-step

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

Вам также необходимо загрузить программное обеспечение Служб Google Play (смотрите в разделе «Дополнительно» в Android SDK manager) и установите библиотеку google-play-services_lib в свой проект (File-Import-Android-Существующий код Android в рабочее пространство, а затем Перейдите к примеру / opt / adt-bundle-linux / sdk / extras / google / google_play_services / libproject и выберите google-play-services_lib).

Еще один интересный лакомый кусочек заключается в том, что это будет работать только на «чистых» настройках эмулятора Android, а не на настройках «Google API». Похоже, что у последних уже есть некоторые части этих приложений, установленных в эмуляторе (не заметно и не работает), и мне не удалось удалить существующие версии, чтобы установить пользовательские файлы apk, которые работали, как описано выше. Я тестировал adb remove, adb install, adb install -r и даже удалял каталоги из / данных, которые также потерпели неудачу. Это очень похоже на то, что Google пытается сделать это сложнее.

Я разочарован, что Google делает это так сильно; У Google могут быть некоторые странные причины лицензирования для хранения этого материала из эмулятора, но если они действительно хотят, чтобы люди использовали свои услуги в своих приложениях для Android, им нужно сделать эти службы доступными в эмуляторе. Заставляя людей всегда развиваться на устройстве (с отличными доступными эмуляторами) или заставляя людей прыгать через обручи (много поисковых запросов, установка неофициальных / взломанных версий apks и т. Д.), Это просто зло.

Заключительное обновление до принятия моего ответа; Хотя правильная кнопка с правильным стилем теперь отображается в эмуляторе, я все еще не могу получить диалоговое окно «pick account», которое появится в эмуляторе. Когда / если я это сделаю, я поделюсь правильным решением здесь.

Проверьте папки ldpi, mdpi, hdpi и т. Д. Для другой графической кнопки. Ваш эмулятор почти наверняка отличается от вашего устройства DPI.

Изображение Android с API Google реализовано Я заметил, что из API 21 есть изображения ARM и x86 с API Google, реализованные, возможно, если у вас нет проблем с эмуляцией с помощью android 5, он будет работать без извлечения APK