模拟器中的Google Play服务,实施Google Plus登录按钮等

Mar*_*ahl 15 android google-plus google-play google-play-services

在Android应用中集成Google Plus登录按钮时,我观察到按钮在实际设备和模拟器中的显示方式存在一些差异.我知道Google Plus服务APK没有安装在模拟器中,但可以通过从设备中提取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" />
Run Code Online (Sandbox Code Playgroud)

当我在设备上测试我的应用时,根据https://developers.google.com/+/mobile/android/sign-in中提到的指南,该按钮显示为红色且有光泽.但是当在模拟器上运行时,它只是一个普通按钮(带有黑色文本的灰色背景),上面写着"使用Google登录".

知道为什么结果不同吗?我已经确定我正在运行相同的API级别,并且资源似乎也在模拟器上正确拉入,因为它显示了实际的登录按钮(但具有不同的外观).

更新:在logcat中找到线索; 消息"未找到登录按钮,而是使用占位符".几乎可以解释为什么我在模拟器上看到灰色的暗淡按钮.还需要找出原因; 可能是"从设备复制谷歌加apk"hack无法正常工作.

cla*_*ass 53

Google Play服务适用于4.2.2版本的Android模拟器,并且正如Android文档中所述正式支持:设置Google Play服务.

更新

您现在可以使用Intel/x86映像(HAXM兼容)用于API 19及更高版本,而对于ARM,大多数映像都可以使用Google Play服务.

设置图像

要为您的虚拟设备管理器获取正确的映像:

  • 打开Android SDK Manager
  • 打开Android 4.2.2组(API 17)
  • 查看Google API
  • 检查ARM EABI v7a系统映像

在此输入图像描述

要创建虚拟设备:

  • 打开Android虚拟设备管理器
  • 创建一个新设备
  • 输入AVD名称
  • 将目标设置为Google API(Google Inc.) - API级别17
  • 保存您的虚拟设备并启动它...

注意 CPU/ABI将固定为ARM

在此输入图像描述

现在,您应该可以在模拟器中使用Google Play服务.值得注意的是,您需要在Android项目中将目标设置为适当的Google API才能使Google Play服务正常运行.

  • 有没有计划使用英特尔凌动x86映像?ARM仿真器几乎无法使用. (3认同)