マップアクティビティはマップを表示せず、ズームコントロールボタンを備えた白い画面として表示されます。このようなマニフェストファイル:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.example.demomap"
Android:versionCode="1"
Android:versionName="1.0" >
<uses-sdk
Android:minSdkVersion="8"
Android:targetSdkVersion="17" />
<permission
Android:name="com.example.demomap.permission.MAPS_RECEIVE"
Android:protectionLevel="signature" />
<uses-permission Android:name="com.example.demomap.permission.MAPS_RECEIVE" />
<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission Android:name="Android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />
<application
Android:allowBackup="true"
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name"
Android:theme="@style/AppTheme" >
<activity
Android:name="com.example.demomap.MainActivity"
Android:label="@string/app_name" >
<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.maps.v2.API_KEY"
Android:value="AIzaSyCTQZOcXFS3RpNSVe79HHN1xojat-2MbT4" />
</application>
<uses-feature
Android:glEsVersion="0x00020000"
Android:required="true" />
</manifest>
これらのような私のXmLファイル:
<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/map"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
class="com.google.Android.gms.maps.SupportMapFragment" />
ログ猫エラー:
05-15 17:15:16.255: E/Google Maps Android API(26201): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).
私を助けてください。
キーが正しくない可能性があります。次のことを試すことができます:
Android at google console site のアクティブなGoogleマップAPI v2
MapViewを使用してこの問題が発生しました
fragment_map.xml
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical" Android:layout_width="match_parent"
Android:layout_height="match_parent">
<com.google.Android.gms.maps.MapView
Android:id="@+id/mapview"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"/>
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
String message = getArguments().getString(EXTRA_MESSAGE);
v = inflater.inflate(R.layout.map_f, container, false);
vh = new ViewHolder();
assetHandler = new AssetHandler(getActivity());
vh.mapView=assetHandler.mapViewHandler.set(v,R.id.mapview);
vh.mapView.onCreate(savedInstanceState);
vh.mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
googleMap.getUiSettings().setMyLocationButtonEnabled(true);
googleMap.setMyLocationEnabled(true);
// Needs to call MapsInitializer before doing any CameraUpdateFactory calls
try {
MapsInitializer.initialize(getActivity());
} catch (Exception e) {
e.printStackTrace();
}
}
});
return v;
}
@Override
public void onResume() {
super.onResume();
vh.mapView.onResume();
}
@Override
public void onPause() {
vh.mapView.onPause();
super.onPause();
}
@Override
public void onDestroy() {
vh.mapView.onDestroy();
super.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
vh.mapView.onLowMemory();
}
LifeCycleメソッドが実装されていない場合、マップも表示されないことに気付きました。これが一部の人にとって希望であることを願っています。
多くの場合、問題はマニフェストのアクセス許可にGoogleサービスのサポートを追加しないことに起因しています。
この許可がマニフェストに存在することを確認してください:
<uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES"/>
パッケージ名を変更し、コンソールを更新しました。すべてが正しい(マニフェストに正しいSHA1キー、パッケージ名、APIキー)がありましたが、同じエラーメッセージが表示されました。
問題を解決するには、アプリをアンインストールして電話を再起動する必要がありました。何かがキャッシュされていたようです。
ここで述べたように、この問題は通常google-play-service
ライブラリを正しく参照していないという事実に由来します。アプリケーションにGoogleマップを統合しないように書いた次のガイドの最初の3つのステップを見て、すべてのステップを正しく実行していることを確認してください。
私はあなたと同じ問題を抱えていましたが、APIキー/////でパッケージ名を新しいアプリを作成する際に言及していないことに気付いたときに解決しました.API Googleコンソールでそれを確認する必要があります。
must be the same package name at the console and the one in your Eclipse.
それがあなたを助けることを願っています。
私の提案は、MapFragmentを使用できることです。私の知る限り、ほぼすべてのデバイスが11以上にアップグレードされています。 MapFragmentは11以上をサポートします。 google apiコンソールに再度ログインし、アプリケーションキーがそこに存在するかどうかを確認します。私はあなたがすでにそれをしたことを知っています。しかし、もう一度確認してください。 APIキーが保存されないという問題があるためです。毎回新しいプロジェクトを作成する必要があります。たぶん、あなたも同じ問題に直面しています。
私はこの同じエラーに数時間を費やしました。当初、デバッグキーストアAPIキーが適切に設定されていなかったため、Androidデバイスは、マニフェストにハードコードされた不正なAPIキーをキャッシュしました。プロジェクトをクリーンアップし、デバイスにローカルに保存された残りのAPIキーをすべてクリアしました。
幸運を。
これは99%のキーストアの問題です。
1)リリースに使用し、C:/Users/EEfimenko/.Android/debug.keystoreからC:\ Users\EEfimenko\Android\MyApp\appフォルダに直接アクセスするためにコピーする同じファイルdebug.keystoreをデバッグします「C:/ Users/...」リンクなしの「debug.keystore」
2)次に、「Android {」のbuild.gradle(モジュール:アプリ)ファイルからポイントを追加します:signingConfigs { debug { storeFile file('debug.keystore') } release { storeFile file('debug.keystore') } }
3)C:\ Users\EEfimenko\Android\MyApp\appフォルダーのcmdから「keytool -list -v -keystore debug.keystore」コマンドを実行し、結果のSHA1フィンガープリントをアプレットの名前と組み合わせます:FR:TY:CG ... ..YF:ER; com.myapp.nameofit
4)次に https://code.google.com/apis/console/b/0/?noredirect に移動します:
a)サービスを有効にし、「Google Maps Android API v2」をオン状態にする
b)FR:TY:CG ..... YF:ER; com.myapp.nameofitを「新規作成Android Key
これで、キーなしの最初のように、キー付きのマップを再び見ることができます!:)
署名されたapkと署名されていないapkの2種類があります。apkが署名されている場合は、リリースキーを使用します。デバッグキーを使用してapkに署名すると、機能しません。 APKをエクスポートして実際のデバイスをチェックインするときにリリースキーを使用してください。このドキュメントでは、 https://developers.google.com/maps/documentation/Android/start#the_google_maps_api_key が与えられています。リリース証明書のフィンガープリントを表示します。
debug.keystore
用に作成されたAPIキーを使用している場合、デバッグモードでアプリケーションを実行する場合にのみマップがレンダリングされます。それをしていることを確認してください。
私はこれに何時間も費やしました。ディスク上に別のdebug.keystoreがあったことがわかりました(正しいものを使用していることを確認するために検索してください)。また、このエラーが発生した場合は、アプリを少し実行したままにしてください。 Google APIアクセスに正しいSHA1/appを追加すると、エラーが再度発生し、ドキュメントを読んでいるときに突然マップが表示されました。おそらく1〜2分かかりました。
私は同じ問題を抱えていたので、APIコンソールで新しいキーを作成しました。また、APIコンソールでリリースキーを記録するための指示に従ってください: リリース証明書のフィンガープリントの表示
それは今私のために働いています...
上記の確認項目に加えて、Eclipseの外部でSHA1キーを生成しました。その後、プロジェクトをEclipseに移動し(Android studio)、Eclipseは新しいSHA1キーを自動的に生成したため、それに基づいて新しいAPI_KEYを生成する必要がありました。
これが私がしたことです。1)ワークスペースを変更しました。 2)Lance NanekのWebサイト、 http://permalink.gmane.org/gmane.comp.handhelds.Android.devel/98066 から、新しいライブラリ機能では、プロパティのAndroid Build PathセクションでJavaプロジェクトを指定します。Androidプロパティのセクション。
そして、Java Build Path-> Projectsを押す-ライブラリを選択して削除します。これで問題が解決しました。
Google APIコンソールで同じアプリパッケージ名とGoogle APIコンソールのマップv2サービスで登録する同じsh1でapkに署名する必要があり、同じsh1ディストリビューションでapkに署名することを確認してください魅力のような。
APIコンソールでGoogleマップサービスを有効にしましたか?