Android:地图视图不起作用

时间:2016-04-27 21:29:54

标签: android google-maps

在我的Android应用中,我添加了Android Studio程序的地图活动(add-> new activity - > Google - > Map)。我遵循了这个例子:https://developers.google.com/maps/documentation/android-api/start#step_2_install_the_google_play_services_sdk

但是,如果我打开地图活动,这很奇怪,我只会看到Google徽标上的地图,但完全是空的(我附上了截图)。而且我没有看到任何连接或关键错误消息。为什么呢?

PS我只添加了" import com.mycompany.myapp.R"在活动java文件中的行,因为在原始文件中使用自动程序创建,我看到所有" R"在该文件中以红色显示错误。

汇总:

1)我已经在Android Studio自动程序中添加了地图活动 2)我已按照程序并在我的应用程序中复制了密钥(我没有看到任何密钥或证书错误消息) 3)我只添加了关于import com.mycompany.myapp.R的行 4)如果我在我的真实设备上进行测试,我会看到一张空白地图。

感谢!

活动代码:



<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.mycompany.myapp.Views.myFragmentMap" />
&#13;
&#13;
&#13;

与活动相关的java文件代码:

&#13;
&#13;
package com.mycompany.myapp.Views;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

//I have added only this one!
import com.mycompany.myapp.R;

public class myFragmentMap extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_myapp_map);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }


    /**
     * Manipulates the map once available.
     * This callback is triggered when the map is ready to be used.
     * This is where we can add markers or lines, add listeners or move the camera. In this case,
     * we just add a marker near Sydney, Australia.
     * If Google Play services is not installed on the device, the user will be prompted to install
     * it inside the SupportMapFragment. This method will only be triggered once the user has
     * installed Google Play services and returned to the app.
     */
    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // Add a marker in Sydney and move the camera
        LatLng sydney = new LatLng(-34, 151);
        mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }
}
&#13;
&#13;
&#13;

谷歌地图api文件,其中我复制了我的密钥:

&#13;
&#13;
<resources>

    <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">
        AIza.... (and the correct code imported from Google)
    </string>
</resources>
&#13;
&#13;
&#13;

这是活动的屏幕 enter image description here

2 个答案:

答案 0 :(得分:0)

您是否在安装Google Play服务SDK后立即运行该应用程序?

Daniel是对的,您可以检查日志中是否存在可能与API密钥相关的错误。

  

Get a Google Maps API key

     

您的应用需要API密钥才能访问Google地图服务器。您需要的密钥类型是Android应用程序的密钥。关键是免费的。您可以将其与调用Google Maps Android API的任何应用程序一起使用,并且它支持无限数量的用户。

     

使用Android Studio为您创建的google_maps_api.xml文件中提供的凭据:

     
      
  1. 复制google_maps_api.xml文件中提供的凭据。
  2.   
  3. 转到浏览器中的Google Developers Console
  4.   
  5. 使用复制的凭据将您的应用添加到现有API密钥或创建新的API密钥。有关详细信息,请参阅complete process
  6.   

按照1-7的所有步骤,将为您提供基本的谷歌地图应用程序。我希望它有所帮助。此外,还有Google Map on Android do not load以前可能与您的体验相关的内容

答案 1 :(得分:0)

我遇到类似的问题。尝试删除您的应用,然后重新安装。