13

Android Hello Viewsの例で定義されているMapViewの例を実装しようとしていますが、次のエラーが発生します。

Failed to find provider info for com.google.settings

なぜこれが起こっているのか考えていますか?

4

5 に答える 5

14

MapView の例では、デフォルトでは API キーが設定されていません。したがって、設定する必要があります。手順は次のとおりです。

  1. システムから MD5 を入手する

    %JAVA_HOME%\bin\keytool.exe -list -alias androiddebugkey -keystore "%userprofile%\.android\debug.keystore" -storepass android -keypass android
    
  2. 生成された MD5 を次のページに貼り付けて API キーを取得します:
    http://code.google.com/android/maps-api-signup.html

  3. 生成された API キーを{your_project_root}/res/layout/map.xmlに貼り付けます

    <com.google.android.maps.MapView
        android:id="@+id/myMapView"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="paste_generated_api_key_here"
    />
    
  4. AndroidManifest.xmlapplicationで、タグに次のタグがあることを確認します。

    <uses-library android:name="com.google.android.maps" />
    

    また、次のタグをタグに追加しますmanifest

    <uses-permission android:name="android.permission.INTERNET" />
    
  5. プロジェクトを更新して実行する

ノート:

  • keytool.exe、debug.keystore、および map.xml のパスは、システムによって異なる場合があります。
  • アプリを公開する場合は、必ず別の API キーを登録してください。
  • API キーを適切に設定しないと、電話でアプリが失敗し、エラー メッセージがおそらく「... 予期せず停止しました。もう一度やり直してください。 - 強制的に閉じます」というエラー メッセージが表示されます。

詳細はhttp://d.android.com/guide/tutorials/views/hello-mapview.htmlをご覧ください

于 2010-01-06T17:43:31.407 に答える
3

権限があることを確認しINTERNET、API キーを正しく生成して に入力してandroid:apiKeyも同じエラーが発生する場合は、もう 1 つ確認する必要があります。アプリケーションは、マップに使用したのと同じ証明書で署名されていますか? APIキー?

Android ビルド ツールは、デバッグ ビルドとリリース ビルドに異なる証明書を使用します。リリース証明書 (「Android アプリケーションのエクスポート」ウィザードで .apk を生成するために使用するもの) の MD5 チェックサムと API キーを生成した場合、デバッグ ビルドでは機能しません。逆の場合も同様です。

デバッグ キーストアの場所は、Eclipse の [Preferences] > [Android] > [Build] ページで確認できます。リリース証明書と同じ方法で、MD5 チェックサムと API キーを生成できます。デバッグ キーストアのデフォルトのパスワードは「android」です。

デバッグキーストアに関する公式ドキュメントは次のとおりです

于 2011-01-13T16:35:39.247 に答える
2

確認するもう1つのこと:

私はちょうどこの問題を抱えていました(というより、私の問題は地図が表示されなかったということでした)。マップビューのチュートリアルをざっと読み、誤ってアプリケーションタグ内に「uses-permission」タグを貼り付けました。次のように、マニフェストタグのすぐ下にある必要があります。

<?xml version="1.0" encoding="utf-8"?>
<manifest [...]>
  <uses-sdk [...] />
  <uses-permission android:name="android.permission.INTERNET" />

  <application android:icon="@drawable/icon" android:label="@string/app_name">
    <uses-library android:name="com.google.android.maps" />
    [...]
  </application>
</manifest>

非常に単純な間違いですが、見つけるのに時間がかかりました。うまくいけば、これは他の誰かを助けるでしょう!

于 2011-11-13T09:15:34.727 に答える
0

この問題はエミュレーターでのみ発生しましたが、このエラーを回避する唯一の方法はエミュレーターを再起動することであることがわかりました。

于 2012-11-20T14:02:56.730 に答える
0

Hello, MapView を確認してください。

アクセス許可のために AndroidManifest.xml 行に含まれていることを確認してください。

<uses-permission android:name="android.permission.INTERNET" />

また、Google Map API Keyは取得していますか?
それを MapView レイアウト定義に入れます。

<com.google.android.maps.MapView
    android:id="@+id/mapview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:apiKey="Your Maps API Key"
/>

エラーに関するその他の言及: GGroups - 1.5 へのアップグレード後に MapView が黒い画面として表示される

于 2010-01-01T14:39:20.467 に答える