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.xml中,确保您的标签中有以下application标签:

    <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,但仍然发生相同的错误,那么还有一件事要检查:您的应用程序是否使用与地图相同的证书签名API 密钥?

Android 构建工具对调试构建和发布构建使用不同的证书。如果您为发布证书生成了 MD5 校验和和 API 密钥(您在“导出 Android 应用程序”向导中用于生成 .apk 的那个),它在调试版本中将不起作用——反之亦然。

您可以在 Eclipse 的 Preferences > Android > Build 页面中找到调试密钥库的位置。您可以像生成发布证书一样为其生成 MD5 校验和和 API 密钥。调试密钥库的默认密码是“android”。

这是有关调试密钥库的官方文档

于 2011-01-13T16:35:39.247 回答
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>

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

于 2011-11-13T09:15:34.727 回答
0

只需查看您好,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 在升级到 1.5 后显示为黑屏

于 2010-01-01T14:39:20.467 回答
0

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

于 2012-11-20T14:02:56.730 回答