谷歌地图在安卓设备上无法显示。

5
我的问题是谷歌地图在使用3.2 API的Android设备上无法显示。我已经尝试了大部分在线搜索到的解决方案建议,但依然没有解决问题。清单文件中有<uses-permission android:name="android.permission.INTERNET"/>。按照谷歌的说明生成了签名密钥(http://developer.android.com/tools/publishing/app-signing.html#setup),并将密钥放在布局android:apiKey="0R8lbu8yQL1Wgw-13s5sUBXZXusi4mEY3EhqWWw"中,但仍然只看到灰色瓦片而不是地图。我知道调试密钥可以在AVD上工作,但不能在Android设备上工作,而签名密钥应该可以在设备上工作,但不能在AVD上工作。我愿意尝试另一个逐步过程来解决这个问题,如果成功,我将永远感激不尽。请帮忙!谢谢!解决方案: 安装了错误的apk到设备上。需要在控制台中执行以下命令:adb install <your-file-name>.apk 编辑:
清单文件
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.googlemaps"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>



<application
    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=".StartActivity"
        android:label="@string/title_activity_start">

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

    </activity>


    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" >

    </activity>


    <service
      android:name=".WorldWideMapService"
      android:process=":remote">
      <intent-filter>
        <action
          android:name="com.example.googlemaps.WorldWideMapService" />
      </intent-filter>
    </service>

</application>

2个回答

5

关于应用程序签名和地图API密钥,我想对您进行更正。

不存在这样一种情况,即默认API密钥仅适用于AVD而不适用于设备。事实上,地图API密钥与签名密钥库相关联,由此签名应用程序。因此,如果您使用默认密钥签署应用程序,则应使用默认API密钥。但是,如果您使用自己的密钥库签署应用程序,则应向Google Map API注册新密钥库并获取API密钥。为了上传到Google Play,我们需要使用其他密钥库签署应用程序,因此我们需要获得发布地图API密钥。

在您的情况下,我认为您正在使用默认密钥库签署您的应用程序,而使用不同密钥库的地图API密钥。

是的,正如@Raju所提到的那样,问题可能出在这里。


我不确定你所说的默认API密钥是什么意思。你是指我提到的调试API密钥吗?我已经尝试使用那个密钥在Android设备上运行应用程序,但仍然出现灰色瓷砖。我已经尝试过导出、签名和创建自己的密钥库以获取新的API密钥,但仍然出现灰色瓷砖。 - neocoolstar
等一下,在放入地图 API 密钥后生成 apk 文件。我应该把 apk 文件保存在哪里?在 bin 文件夹里吗? - neocoolstar
选择 Android 工具 -> 导出已签名的应用程序包,然后选择您想要存储已签名 APK 的任何文件夹。 - jeet
应用程序如何知道使用生成的apk文件?我已经在bin文件夹中有一个类似命名的文件。 - neocoolstar
你需要安装APK。在安装APK之前,你需要进入导出已签名APK的目录,然后在控制台中执行adb install apkname.apk命令。 - jeet
显示剩余2条评论

1

在 activity 之前和 application 标签内添加此内容到清单文件中

<uses-library android:name="com.google.android.maps" />

仍然出现灰色瓷砖,已经尝试过了。 - neocoolstar
请按照以下步骤获取地图密钥:https://developers.google.com/maps/documentation/android/mapkey - user1567667
我已经尝试过了,但我会再试一次。我会告诉你结果的。 - neocoolstar
好的。所以这是与我当前使用的密钥完全相同的密钥。0R8lbu8yQL1Wgw-13s5sUBXZXusi4mEY3EhqWWw。也许在创建密钥库时我搞砸了? - neocoolstar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接