【问题标题】:Google maps android app shows gray grid tiles谷歌地图安卓应用程序显示灰色网格图块
【发布时间】:2013-05-28 02:54:20
【问题描述】:

这是项目的最后一个代码。我遵循你所有的步骤 https://blog-emildesign.rhcloud.com/?p=435 但我的应用程序已停止。

main.java

  package com.example.halkbank;

    import android.os.Bundle;
    import android.app.Activity;
import android.view.Menu;
import android.support.v4.app.FragmentActivity;

public class GoogleMaps extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_google_maps);
    }

}

main.xml

<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".GoogleMaps" >

 <fragment
    android:name="com.google.android.gms.maps.SupportMapFragment"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

manifest.xml

   <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.halkbank"
    android:theme="@android:style/Theme.NoTitleBar"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />


<permission android:name="com.example.halkbank.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
<uses-permission android:name="com.example.halkbank.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" />

<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>


    <application

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

            <activity
        android:name="com.example.halkbank.GoogleMaps"
        android:label="@string/title_activity_google_maps" 
        android:theme="@android:style/Theme.NoTitleBar" >
        <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="api key" />
    </application>

</manifest>

和我的图书馆的打印屏幕

http://s22.postimg.org/66m62oxk1/image.png

什么意思??我的错在哪里??

【问题讨论】:

    标签: android api google-maps google-maps-api-3 android-emulator


    【解决方案1】:

    即使使用带有旧 API 密钥的 MapView 仍然可以使用,但它最近已被弃用。 (source)

    您应该使用 Google Maps Android API v2,该 API 添加到带有 MapFragment 的应用程序中。在documentation 中阅读更多相关信息。

    尝试根据文档中的教程将地图添加到您的应用程序中,然后在这不起作用时提出一个新问题。

    【讨论】:

      【解决方案2】:

      您正在尝试使用这两个版本的 Google Maps API。当您在代码中使用API V2 所需的android-support 库和google-play-services 库时,您正在使用API V1

      我猜这就是您看不到地图的原因,您可能为API V2 生成了一个密钥并尝试在API V1 中使用。

      您应该做的第一件事是将您的代码移动到API V2,因为API V1 已经说过已被弃用和过时。

      现在更清楚一点,这意味着您必须删除它:

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

      因为它属于 API V1。

      接下来,您必须获得一个新的 API V2 密钥,如果您还没有这样做,您可以使用本指南来执行此操作:

      Google Maps API V2 Key

      然后将您的 java 代码从 MapActivityMapView 代码更改为简单的 ActivityFragmentActivtyMapFragmentMapFragmentSupportMapFragment 分别取决于您开发应用程序的平台,您可以获得了解如何开始使用本指南:

      Google Maps API V2

      您忘记将清单文件中的活动名称更改为:

      <activity
                  android:name="com.example.halkmaps.MainActivity"
                  android:label="@string/app_name" 
                  android:theme="@android:style/Theme.NoTitleBar">
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
      

      收件人:

      <activity
                  android:name="com.example.halkmaps.GoogleMaps"
                  android:label="@string/app_name" 
                  android:theme="@android:style/Theme.NoTitleBar">
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
      

      【讨论】:

      • Emil 我播下了您的链接并再次按照所有这些步骤操作,但最终移动设备提醒我应用程序已停止:/
      • 非常感谢 emil,请参阅上面的 logcat,我将等待您的答复 :)
      • 您是否将代码从 API V1 更改为 API V2?如果是这样,请同时发布新代码。
      • 对不起,这是来自之前的代码。 GoogleMaps 在我的代码中是正确的,但错误是一样的:/
      • 尝试将名称设置为:android:name=".GoogleMaps" 并清理您的项目,然后尝试再次运行它。
      猜你喜欢
      • 2021-05-12
      • 1970-01-01
      • 2012-07-13
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多