17

Google Plus のログイン ボタンを Android アプリに統合すると、実際のデバイスとエミュレータでのボタンの表示にいくつかの違いが見られます。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" />

デバイスでアプリをテストすると、 https://developers.google.com/+/mobile/android/sign-inに記載されているガイドラインに従って、ボタンがすべて赤く光って表示されます。しかし、エミュレーターで実行すると、「Google でサインイン」という通常のボタン (灰色の背景に黒いテキスト) になります。

結果が異なる理由は何ですか?同じ API レベルを実行していることを確認しました。実際のログイン ボタンが表示されるため (ただし、外観が異なります)、エミュレーターでもリソースが正しく取り込まれているようです。

更新: logcat で手がかりが見つかりました。「サインイン ボタンが見つかりません。代わりにプレースホルダーを使用してください」というメッセージ。エミュレーターに灰色の鈍いボタンが表示される理由をほぼ説明しています。理由を理解する必要があります。「デバイスから google plus apk をコピーする」ハックが正しく機能していない可能性があります。

4

4 に答える 4

53

Google Play サービスは Android Emulator の 4.2.2 バージョンで動作し、Android のドキュメントで説明されているように公式にサポートされています: Google Play サービスのセットアップ

アップデート

API 19 以降で Intel/x86 イメージ (HAXM 互換) を使用できるようになりました。ARM では、ほとんどのイメージで Google Play Services を使用できます。

画像の設定

仮想デバイス マネージャーに適したイメージを取得するには:

  • Android SDK マネージャーを開く
  • グループ Android 4.2.2 (API 17) を開きます
  • Google API を確認する
  • ARM EABI v7a システム イメージの確認

ここに画像の説明を入力

仮想デバイスを作成するには:

  • Android 仮想デバイス マネージャーを開く
  • 新しいデバイスを作成する
  • AVD 名を入力してください
  • ターゲットをGoogle API (Google Inc.) - API レベル 17に設定します。
  • 仮想デバイスを保存して起動します...

CPU/ABI は ARM として固定されます

ここに画像の説明を入力

これで、エミュレーターで Google Play Services を使用できるようになります。Google Play Services を機能させるには、Android プロジェクトでターゲットを Google API に適切に設定する必要があることに注意してください。

于 2013-06-21T22:39:36.807 に答える
0

別のボタン グラフィックについては、ldpi、mdpi、hdpi などのフォルダーを確認してください。エミュレーターは、ほぼ確実にデバイスとは異なる DPI です。

于 2013-04-14T15:51:33.240 に答える
0

Google API を実装した Android イメージAPI 21 から、Google API が実装された ARM および x86 イメージがあることに気付きました。Android 5 を使用したエミュレートに問題がなければ、APK を抽出しなくても動作する可能性があります。

于 2015-10-29T17:55:42.853 に答える