【问题标题】:Grey tiles Android Google Maps emulator灰色瓷砖 Android 谷歌地图模拟器
【发布时间】:2013-01-15 19:28:03
【问题描述】:

第一个问题。

当我在 android 模拟器中构建应用程序而不是显示 Google 地图时,它会显示空的灰色图块。

我做过的事情:

  • 我添加了 Google API Sdk。
  • 项目目标是 Android + Google APIs (Google APIs)。
  • 我创建了一个带有目标 Google API 和 GPS 的新模拟器,并将 RAM 和最大 vm 应用程序堆增加到 512 和 48。
  • 我删除了 debug.keystore 和 default.keyset 2000 次并重建密钥并发送给 Google 2000 次以上,但仍然无法正常工作。
  • 我获取 SHA1 的命令如下:

    ./keytool.exe -list -v -keystore /home/q/my_name/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

然后我得到 sha1 并粘贴到 google 并添加分号和应用程序名称,所以:

E4:A ..... C38;com.example.myappname

好的,那么我的代码:

主要活动:

package com.example.rest;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;

public class Rest extends MapActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rest);
        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_rest, menu);
        return true;
    }

    public void onProviderDisabled(String provider) {
        Intent intent = new Intent( android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        startActivity(intent);
    }
}

清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.rest"
    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=".Rest"
            android:label="@string/title_activity_rest" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

<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:clickable="true"
    android:apiKey="AIzaSyAdh38-k34RPi7aQ4ik6ExKKWI-wS-bDJA"
/>

</RelativeLayout>

重要的事情:

  • 预建的地图应用 WORKS。
  • SDK 示例 (com.example.android.apis.MapsDemo) 不起作用,因为也显示灰色瓷砖。

有什么线索吗?对我的问题有任何需求,我都会回答。

(我已经编辑了应用名称和一些不显示有关我的姓名的真实数据的内容,等等。)

Logcat:

01-15 10:47:11.498: W/KeyCharacterMap(509): No keyboard for id 0
01-15 10:47:11.498: W/KeyCharacterMap(509): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
01-15 10:47:17.938: W/System.err(509): java.lang.IllegalStateException: Connection pool shut down.
01-15 10:47:18.068: W/System.err(509):  at org.apache.http.impl.conn.tsccm.ConnPoolByRoute.getEntryBlocking(ConnPoolByRoute.java:284)
01-15 10:47:18.068: W/System.err(509):  at org.apache.http.impl.conn.tsccm.ConnPoolByRoute$1.getPoolEntry(ConnPoolByRoute.java:238)
01-15 10:47:18.068: W/System.err(509):  at org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager$1.getConnection(ThreadSafeClientConnManager.java:175)
01-15 10:47:18.068: W/System.err(509):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:325)
01-15 10:47:18.078: W/System.err(509):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
01-15 10:47:18.078: W/System.err(509):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
01-15 10:47:18.298: W/System.err(509):  at android_maps_conflict_avoidance.com.google.common.io.android.AndroidHttpClient.execute(AndroidHttpClient.java:246)
01-15 10:47:18.298: W/System.err(509):  at android_maps_conflict_avoidance.com.google.common.io.android.GoogleHttpClient.executeWithoutRewriting(GoogleHttpClient.java:129)
01-15 10:47:18.308: W/System.err(509):  at android_maps_conflict_avoidance.com.google.common.io.android.GoogleHttpClient.execute(GoogleHttpClient.java:189)
01-15 10:47:18.308: W/System.err(509):  at android_maps_conflict_avoidance.com.google.common.io.android.GoogleHttpClient.execute(GoogleHttpClient.java:242)
01-15 10:47:18.334: W/System.err(509):  at android_maps_conflict_avoidance.com.google.common.io.android.AndroidHttpConnectionFactory$AndroidGoogleHttpConnection.getResponse(AndroidHttpConnectionFactory.java:132)
01-15 10:47:18.334: W/System.err(509):  at android_maps_conflict_avoidance.com.google.common.io.android.AndroidHttpConnectionFactory$AndroidGoogleHttpConnection.openDataInputStream(AndroidHttpConnectionFactory.java:153)
01-15 10:47:18.348: W/System.err(509):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:922)
01-15 10:47:18.472: W/System.err(509):  at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702)
01-15 10:47:18.472: W/System.err(509):  at java.lang.Thread.run(Thread.java:1019)
01-15 10:47:19.038: W/MapActivity(509): Recycling dispatcher android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher@405e68e8
01-15 10:47:19.058: V/MapActivity(509): Recycling map object.
01-15 10:47:19.418: I/MapActivity(509): Handling network change notification:CONNECTED
01-15 10:47:19.418: E/MapActivity(509): Couldn't get connection factory client

我在 Linux 上,但我使用的是位于 winxp 分区上的 keytool.exe。我不知道这是否会导致问题。但是 keytool.exe 给我的 sha1 没有问题,我只是提一下,以防它很重要。

编辑:问题已解决!正确答案来自 FIDO,只需向下滚动屏幕即可。

【问题讨论】:

  • 我用 debug.keystore 创建了一个密钥,它运行良好,所以密钥可能有问题
  • 感谢 Hari,但又做了一次,但没有用。
  • 在 setcontentview mv = (MapView)findViewById(R.id.map); 之后使用此代码mv.setSatellite(真); mv.setBuiltInZoomControls(true); mc = mv.getController();
  • 使用该代码没有成功。但是,我可以看到缩放控件,但可以看到灰色瓷砖。最后一行,mc=...我注释掉了,因为,mc是什么类型?感谢您的时间和耐心。
  • @user1979938 通过勾选投票下方的复选标记来接受 Fido 的回答。

标签: android maps emulation tiles


【解决方案1】:

您正在将 google map V2 的密钥用于 google map V1 项目。尝试this 获取谷歌地图 V1 的密钥

【讨论】:

  • 我不这么认为,在 google apis 服务中我只能激活“Google Maps Android API v2”。但是,我完全尝试了您的命令(在链接中)并且只获取了 MD5,当我尝试在 Google API 中使用它时,它告诉我“您的输入无效”。无论如何感谢您的时间和耐心。
  • @user1979938 在此处发布您的 MD5 密钥 developers.google.com/maps/documentation/android/v1/…(页尾):)
  • 你认为发生了什么?
  • @user1979938 如果有效,则接受我的回答。我已经成功安装了 V1 和 V2,所以我可以看到你的问题。
  • 编辑:好的,我想我已经接受了:) 如果我必须做其他事情,请询问。 (“这是我第一次来这里,我如何接受你的回答?我在“这篇文章对你有用吗?”点击“是”,但我现在如何结束整个问题?”)
猜你喜欢
  • 2014-06-27
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 2013-06-02
  • 1970-01-01
相关资源
最近更新 更多