GoogleMap.addMarker 抛出空异常

我试图为我的自定义谷歌地图应用程序创建一个搜索栏,但每次我尝试搜索位置时应用程序强制关闭。看起来我做的一切都是正确的,按顺序说话。事情是,当我试图搜索一个位置时,它只是强制关闭应用程序,回到主菜单。


XML 文件:


<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity">


    <fragment

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:id="@+id/google_map"

        android:name="com.google.android.gms.maps.SupportMapFragment"/>


    <SearchView

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:id = "@+id/sv_loc"

        android:queryHint="Search for a place or location..."

        android:iconifiedByDefault="false"

        android:layout_margin="10dp"

        android:elevation="5dp"

        android:background="@drawable/bg_round" />



</RelativeLayout>

Java 文件:


package my.maptestapplication;


import android.location.Address;

import android.location.Geocoder;

import android.provider.Telephony;

import android.support.v4.app.FragmentActivity;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.SearchView;


import com.google.android.gms.maps.CameraUpdate;

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;


import java.io.IOException;

import java.util.List;


日志猫:


https://drive.google.com/file/d/1uIzbJvkyefEby9Yo2vqiOQwByXl_G1uq/view?usp=sharing


我假设如果成功,会出现一个地图标记,它会突出显示我在搜索栏上输入的位置。会有人帮我解决这个问题吗?


守着星空守着你
浏览 118回答 1
1回答

九州编程

在您尝试将标记设置GMap为空时。这就是为什么您必须使用onMapReady事件并设置GMap变量的原因。@Overridepublic void onMapReady(GoogleMap googleMap) {&nbsp; &nbsp;GMap = googleMap;}您可以在此处阅读有关onMapReady活动的信息
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java