虽然我多年来一直在阅读StackOverflow论坛,但这是我第一次在这里发帖。我知道我之前提到的问题之前已被问过,但是,正如我所看到的那样,似乎没有明确的答案,所以我尽可能详细地发布我的案例,看看是否有人可以提供帮助在我跳下悬崖之前,我明白我做错了什么。
“地图在调试模式下不起作用”神话:是真的吗?我不止一次地阅读过,在使用调试API密钥时,地图无法正常加载,但一旦应用程序发布并登录到市场,问题就会消失......是这样吗?我可以测试一个半功能的应用程序,假设地图运行良好,然后将其上传到市场,希望它能按预期工作吗? (请说“是”,然后把我从这个没有加载的瓷砖中释放出来!)
我对自己的应用做了什么:
使用“keytool”命令列出密钥库的证书指纹:
$ keytool -list -alias androiddebugkey -keystore ./.android/debug.keystore -storepass android -keypass android
使用上述步骤中的证书指纹创建了一个API项目并生成了一个API密钥。
在AndroidManifest.xml上添加了API密钥和权限:
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<permission
android:name="com.mycompany.test1.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.mycompany.test1.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
(...)
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AItaSyDGE2yil3tCr9NP45QVDPfmRUP-gNv7uLY" />
在我的活动的XML布局上添加了一个地图:
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="AItaSyDGE2yil3tCr9NP45QVDPfmRUP-gNv7uLY"
/>
<!-- Though the Google page says to use the following code, Eclipse shows an error referring to the "xmlns" tag and it can't be compiled: -->
<!--
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
-->
我尝试使用Google API在Android模拟器中使用Android 4.x,使用Android 2.3,4.0和4.2的三个真实设备进行编译,导出项目的.apk并直接从USB卡上安装APK ,但行为总是一样的:当试图显示地图时,LogCat会出现以下错误:
IOException processing: 26
java.io.IOException: Server returned: 3
at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473)
at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117)
at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994)
at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702)
at java.lang.Thread.run(Thread.java:856)
有人知道会发生什么吗?我已经跟踪了Google指南一千次,重新生成了我的API密钥,检查了我的清单,在模拟器上测试了应用程序,在设备上等等,并且没有改变任何东西!正如我之前在这篇文章中所说,我已经读过,在“测试”应用程序时,地图简直无法进行测试,所以应该等到应用程序在市场上发布才能看到它们正常工作。 ..然而,这听起来很奇怪!有什么想法吗?
提前感谢您的时间和精力! :)