未知类:googleMap和另外2个

时间:2016-06-12 08:57:51

标签: android google-maps android-studio eclipse-adt

我的目标是按照here的说明将Google地图作为主要活动。

我粘贴了网站上的代码(下面的MainActivity.java代码)并导入了所有必需的包(alt + enter)。然而,仍然存在一些错误(现在,我专注于一个,可能会在不久的将来更多地询问其他错误)。

if (googleMap == null) {行有一条红线,上面写着3件事:

Unknown class googleMap(此错误仅适用于此特定行)

Unexpected token(当鼠标悬停在null上方时)&

Unexpected token(当鼠标悬停在if上方时)

如果有帮助,我正在使用android studio。谢谢,代码如下 -

import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;

public class MainActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }

    public GoogleMap googleMap; // Might be null if Google Play services APK is not available.

    if (googleMap == null) {

        googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMapAsync(this);

        // check if map is created successfully or not
        if (googleMap == null) {
            Toast.makeText(getApplicationContext(),
                    "Could not create Maps", Toast.LENGTH_SHORT).show();
        }
        else {
            // Changing map type
            //TODO
        }
    }

    public GpsLocation(Context mContext, TextView gpsStatusTextView) {
        this.mContext = mContext;
        this.gpsStatusTextView = gpsStatusTextView;
        getLocation();
    }

    public Location getLocation() {
        try {
            locationManager = (LocationManager) mContext
                    .getSystemService(Context.LOCATION_SERVICE);

            // getting GPS status
            isGPSEnabled = locationManager
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);

            // getting network status
            isNetworkEnabled = locationManager
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

            if (!isGPSEnabled && !isNetworkEnabled) {
                // no network provider is enabled
            } else {
                this.canGetLocation = true;
                // First get location from Network Provider
                if (isNetworkEnabled) {
                    locationManager.requestLocationUpdates(
                            LocationManager.NETWORK_PROVIDER,
                            MIN_TIME_BW_UPDATES,
                            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    Log.d("Network", "Network");
                    if (locationManager != null) {
                        location = locationManager
                                .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                        if (location != null) {
                            latitude = location.getLatitude();
                            longitude = location.getLongitude();
                        }
                    }
                }
                // if GPS Enabled get lat/long using GPS Services
                if (isGPSEnabled) {
                    if (location == null) {
                        locationManager.requestLocationUpdates(
                                LocationManager.GPS_PROVIDER,
                                MIN_TIME_BW_UPDATES,
                                MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                        Log.d("GPS Enabled", "GPS Enabled");
                        if (locationManager != null) {
                            location = locationManager
                                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                            if (location != null) {
                                latitude = location.getLatitude();
                                longitude = location.getLongitude();
                            }
                        }
                    }
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return location;
    }

    gpsLocation = new GpsLocation(this, gpsStatusTextView);

    if (gpsLocation.canGetLocation()){
        double longitude = gpsLocation.getLongitude();
        double latitude = gpsLocation.getLatitude();
    }
}

很抱歉,如果这是一个 n00b 总问题

2 个答案:

答案 0 :(得分:0)

在gradle文件中添加Google地图相关性并同步您的项目

答案 1 :(得分:0)

有关深入信息:

请按照以下文档操作:Getting StartedProject ConfigurationGet API Key

使用入门

  

本指南是将地图添加到Android应用的快速入门。 Android Studio是推荐的使用Google Maps Android API构建应用的开发环境。

     
      
  1. 下载Android Studio
  2.   
  3. 安装Google Play服务SDK
  4.   
  5. 创建Google地图项目
  6.   
  7. 获取Google Maps API密钥
  8.   
  9. 你好地图!看看代码
  10.   
  11. 连接Android设备
  12.   
  13. 构建并运行您的应用
  14.   

项目配置

在本文档中介绍了在Android应用中使用Google Maps Android API时开发项目中所需的所有配置。

  

将地图添加到Android应用程序的整个过程如下:

     
      
  • 安装Android SDK。
  •   
  • 安装并配置Google Play服务SDK,其中包含Google Maps Android API。 注意:如果您将Google Maps Android API与Google Maps API Premium Plan许可一起使用,则必须下载并配置Premium Plan SDK。
  •   
  • 获取API密钥。为此,您需要在Google Developers Console中注册项目,找到应用的签名证书,并创建API密钥。
  •   
  • 将所需的设置添加到您的应用程序的清单中。
  •   

获取API密钥

  

要使用Google Maps Android API,您必须在Google Developers Console上注册您的应用项目,并获取可以添加到您的应用中的Google API密钥。 注意:有各种类型的API密钥。您需要 Android密钥而不是浏览器密钥。

     

您的API密钥基于应用程序的简短形式的数字证书。所有Android应用都使用您持有私钥的数字证书进行签名。 (有关数字证书的详细信息,请参阅Android指南以签署您的应用程序。)

按照以下步骤操作,您将获得主要活动中的地图。

希望这有帮助。