web-dev-qa-db-ja.com

AndroidのGoogleマップ署名APIキーエラー

デバッグマップキーから署名済みマップキーに切り替えると、マップの動作が停止します。 logcatで次のエラーが表示されます。

09-03 18:18:04.112: WARN/System.err(4073): IOException processing: 26
09-03 18:18:04.112: WARN/System.err(4073): Java.io.IOException: Server returned: 3
09-03 18:18:04.112: WARN/System.err(4073):     at Android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.Java:115)
09-03 18:18:04.112: WARN/System.err(4073):     at Android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.Java:1473)
09-03 18:18:04.112: WARN/System.err(4073):     at Android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.Java:1117)
09-03 18:18:04.112: WARN/System.err(4073):     at Android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.Java:994)
09-03 18:18:04.112: WARN/System.err(4073):     at Android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.Java:1702)
09-03 18:18:04.112: WARN/System.err(4073):     at Java.lang.Thread.run(Thread.Java:1019)

私はすべてを二重にチェックしました。許可とライブラリが整っています。私は歌ったキーを再作成しましたが、運はありません。

何か案は?

61
Jen

私は同じ問題を抱えていたので、インターネット上に役に立つ答えは何もないと思ったので、これが将来みんなに役立つことを願っています。

GoogleMaps for Androidを使用する場合、デバッグとリリースの2つのキーが必要です。

「デバッグ」キーは一種の誤解を招く用語です。このキーは、Eclipseでアプリを開発するときにも使用されます。したがって、本質的には、開発、テスト、デバッグにデバッグキーを使用します。

アプリをマーケットに起動する準備ができたら、Android:debuggable="false"AndroidManifest.xmlを設定し、署名付きAPIキーを使用します。

署名済みAPIキーを使用する場合、MapViewは、アプリがAndroid Marketからインストールされた場合にのみ表示されます。そのため、Eclipse(Run As、Debug Asなど)またはコマンドライン(adb install)からアプリをインストールしても、MapViewは表示されません。アプリがマーケットに出たら、安心してください-ダウンロードすると、MapViewが表示されます。

署名されたAPIキーを使用して、Ecliseからアプリをデプロイすると、警告として「サーバーから返された3、IOProcessing例外26」が表示されます。無視してください。

注:また、同じMapViewの重複インスタンスがないことを確認してください。アプリが「x」を必要としない場合MapViewsの「x」を生成します。 GoogleMapsには単一のMapViewインスタンスに対するクエリ制限があるため、新しい署名キー(各MapViewに1つ)が含まれます。

両方のキーを取得するには、 AndroidでGoogleMapsのAPIキーを取得する の手順に従います。

ハッピーコーディング!

UPDATE:

APIキーを取得するための上記のリンクは、非推奨の手順になりました。 GoogleMapsのAPIキーの取得Android API v2 今後に進みます。

81
Sagar Hatekar

最後に修正されました。

私はWindowsマシンを使用しているので、単にC:\Users\rohit\.Androidおよび削除済みdebug.keystoreおよびdefault.keyset1これが完了したら、Eclipseに行き、クリーンビルドをプロジェクトに適用して完了しました。

3
Rohit Mandiwal

署名済みマップキーはリリースアプリに使用されます。したがって、そのような情報を取得します。署名済みのマップキーでUSB接続されたアプリをデバッグする場合。アプリをデバッグする場合は、デバッグマップキーに戻り、更新または新しいバージョンをリリースする前に、署名されたマップキーに置き換えます。

2
sma

同じ問題がありました。私の場合、私が間違っていたのはこれでした。私はこのようなkeytoolコマンドを書いていました:

keytool -list -keystore debug.keystore ...

の代わりに:

keytool -list -keystore ~\.Android\debug.keystore ...

そのため、指紋でEclipseのキーストアを更新していませんでした。

私はこれが誰かを助けることを願っています:)

2
Estrella

もう1つ:-vを追加した後、Google APIにはSHA1ではなくMD5が必要なことを覚えておく必要があります。Googleに与えるコードを確認してください。

1
fly84021210

他の誰かが生成して提供したデバッグキーを使用している場合、それが次の例外を除いて空白のマップの理由です。

Java.io.IOException: Server returned: 3

このリンクを使用してAPIキーを取得できます。 Register

1
Prasad Korhale

ちょうど同じ問題に遭遇しました。

例外をスローするユーザー作成コードはありません。Eclipselogcatで生成され、その結果、Googleマップタイルは表示されません。 Jenのように、キーを再生成しましたが、役に立ちませんでした。

プラットフォームはAndroid 3.2、デバイスはAsus Transformer、接続はWiFiです。

参考までにAndroid 2.2アプリケーションは正常に動作し、3G上のDroidでマップを取得します。

ここに私の問題の解決策があります、それがジェンに役立つことを願っています:

私の場合、「Debug as」Eclipseアイコンを使用してTransformerにテザーUSBテザーでリリースバージョンをインストールすると、マップは上記のように失敗します(FYIこれは= Android 2.2およびその他のデバイス)。

そこで、代わりにこれを試しました。EclipseFile | Export ...オプションを使用してリリースAPKを作成し、Asus Syncアプリケーションを使用してそのAPKをTransformerにインストールします。すべて順調。マップタイルが表示されます。

1
CJ Villa

SDKエクストラからマップのサンプルを作成しようとした貧しい人々のために:パッケージの名前をcom.example.mapdemoからcom.mynmae.mapdemoに変更するとすぐに、マップが魔法のように現れました。はい、検索と試行に1時間かかりましたが、パッケージ名は黙って拒否されました。

0
denispyr

同じ質問がありますが、答えを見つけたと思います!

  1. 次の手順に従ってください https://developers.google.com/Android/maps-api-signup を選択し、証明書のMD5フィンガープリントを受け取ります
  2. 開発中に、マップが表示されない場合、これを心配しないでください!簡単な抽出APKの使用Android最初のステップで使用され、このAPKファイルを使用して携帯電話にインストールするキーツールを備えたツール、MapViewが表示されます

とにかく、開発中はMapViewが表示されないかもしれませんが、それでも問題はないので心配する必要はありません!キーストアを使用してアプリとビルドを完了したら、単純に待機すると、マップが正しく表示されます

0
khaintt