私は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"));
}
}
私は何が欠けていますか、何が問題になる可能性がありますか?どんな助けでも大歓迎です。
ありがとうございました。
解決策を得ました。 2つのことをしなければなりませんでした-Play開発者サービスのバージョンを5.0.89より低く設定します。テストした(仮想)デバイスから最後のバージョンをダウンロードすることはできませんでした。更新が必要です。
次に、GooglePlay開発者サービスをGenymotionVMにインストールするには、次のリンクの手順に従います。 GooglePlay開発者サービスをGenymotionにインストールする方法VM(ドラッグアンドドロップのサポートなし)? 。
乾杯。
別の解決策は、エミュレータのターゲットをGoogleAPIに変更することです。
Google Play開発者サービスSDKを使用するときにアプリをテストするには、Android 4.2に基づいてGoogleAPIプラットフォームを実行するAVDを備えたAndroidエミュレーターを使用する必要があります。 2以上 ソース
Ojonugwaのソリューションは優れていますが、それに加えて、最新バージョンのGooglePlay開発者サービスがエミュレーターで利用できないという問題があります。ただし、適切なバージョンのGoogle Play開発者サービスは、APIバージョン21または19を実行しているエミュレーターで利用できます。
現在の解決策は、APIバージョンが21または19の新しいAVDを作成し、Google API(Andriod x.x.xではない)をターゲットにすることです。 APIバージョン21または19でGoogleAPI AVDを使用する場合、期待どおりに機能するはずです。