GoogleMaps诅咒:BaseTileRequest失败

时间:2013-04-29 10:00:12

标签: google-maps google-api android-mapview android-maps api-key

虽然我多年来一直在阅读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密钥,检查了我的清单,在模拟器上测试了应用程序,在设备上等等,并且没有改变任何东西!正如我之前在这篇文章中所说,我已经读过,在“测试”应用程序时,地图简直无法进行测试,所以应该等到应用程序在市场上发布才能看到它们正常工作。 ..然而,这听起来很奇怪!有什么想法吗?

提前感谢您的时间和精力! :)

0 个答案:

没有答案