デバッグマップキーから署名済みマップキーに切り替えると、マップの動作が停止します。 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)
私はすべてを二重にチェックしました。許可とライブラリが整っています。私は歌ったキーを再作成しましたが、運はありません。
何か案は?
私は同じ問題を抱えていたので、インターネット上に役に立つ答えは何もないと思ったので、これが将来みんなに役立つことを願っています。
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」を必要としない場合MapView
sの「x」を生成します。 GoogleMapsには単一のMapView
インスタンスに対するクエリ制限があるため、新しい署名キー(各MapViewに1つ)が含まれます。
両方のキーを取得するには、 AndroidでGoogleMapsのAPIキーを取得する の手順に従います。
ハッピーコーディング!
UPDATE:
APIキーを取得するための上記のリンクは、非推奨の手順になりました。 GoogleMapsのAPIキーの取得Android API v2 今後に進みます。
最後に修正されました。
私はWindowsマシンを使用しているので、単にC:\Users\rohit\.Android
および削除済みdebug.keystore
およびdefault.keyset1
これが完了したら、Eclipseに行き、クリーンビルドをプロジェクトに適用して完了しました。
署名済みマップキーはリリースアプリに使用されます。したがって、そのような情報を取得します。署名済みのマップキーでUSB接続されたアプリをデバッグする場合。アプリをデバッグする場合は、デバッグマップキーに戻り、更新または新しいバージョンをリリースする前に、署名されたマップキーに置き換えます。
同じ問題がありました。私の場合、私が間違っていたのはこれでした。私はこのようなkeytoolコマンドを書いていました:
keytool -list -keystore debug.keystore ...
の代わりに:
keytool -list -keystore ~\.Android\debug.keystore ...
そのため、指紋でEclipseのキーストアを更新していませんでした。
私はこれが誰かを助けることを願っています:)
もう1つ:-vを追加した後、Google APIにはSHA1ではなくMD5が必要なことを覚えておく必要があります。Googleに与えるコードを確認してください。
他の誰かが生成して提供したデバッグキーを使用している場合、それが次の例外を除いて空白のマップの理由です。
Java.io.IOException: Server returned: 3
このリンクを使用してAPIキーを取得できます。 Register
ちょうど同じ問題に遭遇しました。
例外をスローするユーザー作成コードはありません。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にインストールします。すべて順調。マップタイルが表示されます。
SDKエクストラからマップのサンプルを作成しようとした貧しい人々のために:パッケージの名前をcom.example.mapdemoからcom.mynmae.mapdemoに変更するとすぐに、マップが魔法のように現れました。はい、検索と試行に1時間かかりましたが、パッケージ名は黙って拒否されました。
同じ質問がありますが、答えを見つけたと思います!
とにかく、開発中はMapViewが表示されないかもしれませんが、それでも問題はないので心配する必要はありません!キーストアを使用してアプリとビルドを完了したら、単純に待機すると、マップが正しく表示されます