我正在尝试实现在 Android Hello Views 示例中定义的 MapView 示例,但现在我遇到了这个错误:
Failed to find provider info for com.google.settings
知道为什么会这样吗?
我正在尝试实现在 Android Hello Views 示例中定义的 MapView 示例,但现在我遇到了这个错误:
Failed to find provider info for com.google.settings
知道为什么会这样吗?
MapView 示例默认不设置 API 密钥。所以你必须设置它。这是一步一步的:
从您的系统中获取 MD5
%JAVA_HOME%\bin\keytool.exe -list -alias androiddebugkey -keystore "%userprofile%\.android\debug.keystore" -storepass android -keypass android
通过将生成的 MD5 粘贴到此页面获取 API 密钥:
http ://code.google.com/android/maps-api-signup.html
将生成的 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"
/>
在AndroidManifest.xml中,确保您的标签中有以下application
标签:
<uses-library android:name="com.google.android.maps" />
以及您的标签中的manifest
以下标签:
<uses-permission android:name="android.permission.INTERNET" />
刷新您的项目并运行
笔记:
更多细节在http://d.android.com/guide/tutorials/views/hello-mapview.html
如果您已确保您拥有INTERNET
权限,并且已正确生成 API 密钥并将其放入android:apiKey
,但仍然发生相同的错误,那么还有一件事要检查:您的应用程序是否使用与地图相同的证书签名API 密钥?
Android 构建工具对调试构建和发布构建使用不同的证书。如果您为发布证书生成了 MD5 校验和和 API 密钥(您在“导出 Android 应用程序”向导中用于生成 .apk 的那个),它在调试版本中将不起作用——反之亦然。
您可以在 Eclipse 的 Preferences > Android > Build 页面中找到调试密钥库的位置。您可以像生成发布证书一样为其生成 MD5 校验和和 API 密钥。调试密钥库的默认密码是“android”。
还有一件事要检查:
我只是遇到了这个问题(或者更确切地说,我的问题是地图没有显示出来)。我浏览了地图视图教程并错误地将“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>
一个非常简单的错误,但我花了一段时间才找到。希望这对其他人有帮助!
只需查看您好,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"
/>
我只在模拟器上遇到过这个问题,我发现解决这个错误的唯一方法是重新启动模拟器。