【问题标题】:Google Maps V2 shows blank screen on android 2.2Google Maps V2 在 android 2.2 上显示空白屏幕
【发布时间】:2012-11-25 23:04:41
【问题描述】:

我尝试按照Android Maps V2 Quick Start 上的教程进行操作 但是当我运行该应用程序时,会显示一个空白的地图屏幕。我的手机使用的是安卓2.2.1。

这是在 logcat 中显示的内容:

12-07 18:07:52.479: W/dalvikvm(1654): VFY: unable to resolve instance field 24
12-07 18:07:53.129: W/dalvikvm(1654): Unable to resolve superclass of Lmaps/a/du; (411)
12-07 18:07:53.129: W/dalvikvm(1654): Link of class 'Lmaps/a/du;' failed
12-07 18:07:53.139: W/dalvikvm(1654): Unable to resolve superclass of Lmaps/a/ej; (2363)
12-07 18:07:53.139: W/dalvikvm(1654): Link of class 'Lmaps/a/ej;' failed
12-07 18:07:53.139: W/dalvikvm(1654): Unable to resolve superclass of Lmaps/j/k; (2379)
12-07 18:07:53.139: W/dalvikvm(1654): Link of class 'Lmaps/j/k;' failed
12-07 18:07:53.149: E/dalvikvm(1654): Could not find class 'maps.j.k', referenced from method maps.y.ae.a
12-07 18:07:53.149: W/dalvikvm(1654): VFY: unable to resolve new-instance 3571 (Lmaps/j/k;) in Lmaps/y/ae;
12-07 18:07:53.389: W/dalvikvm(1654): VFY: unable to resolve direct method 14965: Ljava/io/IOException;.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V

编辑:这是 manifest.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.eunice.mapstry"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
    <permission android:name="com.eunice.mapstry.permission.MAPS_RECEIVE"
                android:protectionLevel="signature"/>
    <uses-permission android:name="com.eunice.mapstry.permission.MAPS_RECEIVE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <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"/>


    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <uses-library android:name="com.google.android.maps" />

        <activity
            android:name="com.eunice.mapstry.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyBt_JE6_XIVR8-t0HrbhskeLrAVxSJst6c"/>
    </application>

</manifest>

编辑:我添加了我的 google api 控制台的图像:

【问题讨论】:

  • 您是否添加了自己创建的 API 密钥?
  • 是的,我有。我首先使用调试密钥库创建了一个。当那个不起作用时,我创建了一个不同的密钥库并用那个创建了一个 api 密钥,但它仍然不起作用
  • 地图视图在那里,所以我知道阻止地图出现的唯一两件事是密钥错误,或者您没有在清单中添加访问互联网的权限。
  • @GrahamSmith 我刚刚添加了 manifest.xml。我已经添加了所有必需的权限和一个有效的 api 密钥。
  • 我面临同样的问题,但我无法解决它..你能帮帮我吗?

标签: android google-maps android-maps google-maps-api-2


【解决方案1】:

我终于找到了问题所在。我选择了错误的调试密钥库。我正在使用 ubuntu 机器。由于我以 root 身份打开 eclipse,因此 eclipse 中的默认密钥库位于我的根文件夹(/root/.android/.android/debug.keystore)中,而我正在使用我的用户文件夹中的调试密钥库创建 api 密钥。我在根文件夹中使用调试密钥库创建了一个新的 api 密钥,它现在可以工作了。

【讨论】:

    【解决方案2】:

    确保在https://code.google.com/apis/console 中启用 Google Maps Android API v2 服务

    1. 去找你https://code.google.com/apis/console->服务标签
    2. 确保 Google Maps Android API v2 已开启
    3. 转到 API 访问选项卡
    4. 再次创建新的 Android 密钥

    那你就可以走了:)

    【讨论】:

    • 我已经这样做了。我刚刚编辑了我的问题以包含我的 google api 控制台的图像。
    【解决方案3】:

    我也一直在搞这些东西(证书、包名称、API 控制台等),直到我尝试从我的设备上卸载应用程序,然后重新安装它,突然就没事了。

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,但就这样解决了。如果上述答案对您不起作用,可能会有所帮助。更改应用程序的包名称后,地图开始不显示。 (这发生在我更改了我的包名之后

      1. 删除您用于上一个包的密钥库文件
      2. 创建一个新的密钥库文件
      3. 获取 SHA1 指纹
      4. 转到 API 控制台
      5. 创建一个新的 Android 应用。
      6. 粘贴您的指纹
      7. 在清单文件中使用给定的 API 密钥

      这对我有用

      【讨论】:

        【解决方案5】:

        我遇到了同样的问题,解决方案是删除 debug.keystore。然后我做了一个 adb uninstall com.example.myapp 然后清理并再次运行应用程序。

        我认为问题是由于我在清单中复制并粘贴了一个虚拟 API 密钥,并且我首先使用它部署了应用程序。

        【讨论】:

          猜你喜欢
          • 2020-06-12
          • 1970-01-01
          • 1970-01-01
          • 2019-10-18
          • 2019-01-06
          • 1970-01-01
          • 1970-01-01
          • 2021-12-04
          • 2013-08-25
          相关资源
          最近更新 更多