web-dev-qa-db-ja.com

Android Studio with Google Play:GooglePlay開発者サービスがありません

私はUbuntu14を使用していますAndroid Studio 0.8.6。アプリの実行にGenymotionを使用していますが、応答は次のとおりです。

W/GooglePlayServicesUtil﹕ Google Play services is missing.

GooglePlay開発者サービスライブラリをAndroid Studio にインポートします。これも Android Studio with Google Play Services から)のソリューションを試しました。次のパッケージをAndroid SDK Manager:Androidサポートリポジトリ、Androidサポートライブラリ、Google Play開発者サービス、Googleリポジトリ。

Android Studioのデフォルトアクティビティ(マップアクティビティ)を実行しようとしています。マニフェストファイルは次のとおりです。

<application
        Android:allowBackup="true"
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name"
        Android:theme="@style/AppTheme" >
        <activity
            Android:name=".MapsActivity"
            Android:label="@string/title_activity_maps" >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            Android:name="com.google.Android.gms.version"
            Android:value="@integer/google_play_services_version" />
        <meta-data
            Android:name="com.google.Android.maps.v2.API_KEY"
            Android:value="@string/google_maps_key" />
    </application>

    <uses-permission Android:name="Android.permission.INTERNET" />
    <uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES" />

Build.gradleからの依存関係:

dependencies {
    compile 'com.google.Android.gms:play-services:5.2.08'
    compile 'com.Android.support:appcompat-v7:20.0.0'
}

デフォルトのMapsActivity.Java:

import Android.support.v4.app.FragmentActivity;
import Android.os.Bundle;

import com.google.Android.gms.maps.GoogleMap;
import com.google.Android.gms.maps.SupportMapFragment;
import com.google.Android.gms.maps.model.LatLng;
import com.google.Android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity {

    private GoogleMap mMap; // Might be null if Google Play services APK is not available.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        setUpMapIfNeeded();
    }

    @Override
    protected void onResume() {
        super.onResume();
        setUpMapIfNeeded();
    }

    private void setUpMapIfNeeded() {
        // Do a null check to confirm that we have not already instantiated the map.
        if (mMap == null) {
            // Try to obtain the map from the SupportMapFragment.
            mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                    .getMap();
            // Check if we were successful in obtaining the map.
            if (mMap != null) {
                setUpMap();
            }
        }
    }

    private void setUpMap() {
        mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
    }
}

私は何が欠けていますか、何が問題になる可能性がありますか?どんな助けでも大歓迎です。

ありがとうございました。

9
stubgo

解決策を得ました。 2つのことをしなければなりませんでした-Play開発者サービスのバージョンを5.0.89より低く設定します。テストした(仮想)デバイスから最後のバージョンをダウンロードすることはできませんでした。更新が必要です。

次に、GooglePlay開発者サービスをGenymotionVMにインストールするには、次のリンクの手順に従います。 GooglePlay開発者サービスをGenymotionにインストールする方法VM(ドラッグアンドドロップのサポートなし)?

乾杯。

9
stubgo

別の解決策は、エミュレータのターゲットをGoogleAPIに変更することです。

enter image description here

Google Play開発者サービスSDKを使用するときにアプリをテストするには、Android 4.2に基づいてGoogleAPIプラットフォームを実行するAVDを備えたAndroidエミュレーターを使用する必要があります。 2以上 ソース

7

Ojonugwaのソリューションは優れていますが、それに加えて、最新バージョンのGooglePlay開発者サービスがエミュレーターで利用できないという問題があります。ただし、適切なバージョンのGoogle Play開発者サービスは、APIバージョン21または19を実行しているエミュレーターで利用できます。

現在の解決策は、APIバージョンが21または19の新しいAVDを作成し、Google API(Andriod x.x.xではない)をターゲットにすることです。 APIバージョン21または19でGoogleAPI AVDを使用する場合、期待どおりに機能するはずです。

https://github.com/googlesamples/google-services/issues/32

0
KeithP