Android - 无法在MapView示例中查找com.google.settings的提供商信息

时间:2010-01-01 07:03:30

标签: android android-mapview

我正在尝试实现在Android Hello Views示例中定义的MapView示例,但现在我遇到了这个错误:

Failed to find provider info for com.google.settings

知道为什么会这样吗?

5 个答案:

答案 0 :(得分: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.xml 中,确保您的application标记中包含以下标记:

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

    以及您manifest标记中的以下标记:

    <uses-permission android:name="android.permission.INTERNET" />
    
  5. 刷新项目并运行

  6. 注意:

    • 您的系统上keytool.exe,debug.keystore和map.xml的路径可能会有所不同。
    • 如果您发布了应用,请务必注册其他API密钥。
    • 如果您没有正确设置API密钥,您的应用程序将在手机上失败,错误消息可能是“ ...已意外停止。请再试一次。 - 强制关闭

    http://d.android.com/guide/tutorials/views/hello-mapview.html

    的详细信息

答案 1 :(得分:3)

如果您确定拥有INTERNET权限,并且已正确生成API密钥,并且已将其放入android:apiKey,并且仍然发生相同的错误,则还需要检查以下内容:您的应用程序是否使用与Maps API密钥相同的证书进行签名?

Android构建工具使用不同的证书进行调试构建和发布构建。如果您已为发布证书(您在“导出Android应用程序”向导中使用的生成.apk)生成了MD5校验和和API密钥,则它将无法在调试版本中运行 - 反之亦然。

您可以在Eclipse的Preferences&gt;中找到调试密钥库的位置。 Android&gt;构建页面。您可以使用与发布证书相同的方式为其生成MD5校验和和API密钥。 debug keystore的默认密码是“android”。

这是official docs about debug keystore

答案 2 :(得分:2)

还有一件事需要检查:

我刚遇到这个问题(或者更确切地说,我的问题是地图没有出现)。我浏览了地图视图教程并错误地在应用程序标记内粘贴了“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>

一个非常简单的错误,但我花了一段时间才找到。希望这有助于其他人!

答案 3 :(得分: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 - MapView showing as black screen after upgrade to 1.5

答案 4 :(得分:0)

我只在模拟器上遇到过这个问题,我发现解决此错误的唯一方法是重启模拟器。