java无法打开Google地图活动。安卓
我试图从我的Android应用程序中打开谷歌地图活动,然后当我点击地图时,获取位置。 但我无法打开我的谷歌地图活动。 以下是我试图打开“活动”的代码:
public class RegistrationActivity extends AppCompatActivity implements View.OnClickListener {
Button buttonPlaceBD,buttonCurrPlace;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registration);
buttonPlaceBD=(Button)findViewById(R.id.buttonPlaceBD);
buttonPlaceBD.setOnClickListener(this);
buttonCurrPlace=(Button)findViewById(R.id.buttonCurrPlace);
buttonCurrPlace.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent;
switch (v.getId())
{
case R.id.buttonPlaceBD:
intent=new Intent(this,BDMapsActivity.class);
startActivity(intent);
break;
case R.id.buttonBack:
finish();
break;
}
}
}
这是我的BDMapsActivity。爪哇
public class BDMapsActivity extends FragmentActivity implements OnMapReadyCallback, GoogleMap.OnMapClickListener{
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bdmaps);
mMap.setOnMapClickListener(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
}
@Override
public void onMapClick(LatLng latLng) {
System.out.println("CLIIIIIIIIIICK: "+latLng);
}
}
这是我的活动地图。xml
<fragment xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:map="http://schemas.安卓.com/apk/res-auto"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:id="@+id/map"
安卓:name="com.google.安卓.gms.maps.SupportMapFragment"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
tools:context="com.example.serg_shapoval.astrologyes.BDMapsActivity" />
这给了我一个错误:
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.serg_shapoval.astrologyes, PID: 18731 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.serg_shapoval.astrologyes/com.example.serg_shapoval.astrologyes.BDMapsActivity}: java.lang.NullPointerException at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2221) at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2280) at 安卓.app.ActivityThread.access$800(ActivityThread.java:141) at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1202) at 安卓.os.Handler.dispatchMessage(Handler.java:102) at 安卓.os.Looper.loop(Looper.java:136) at 安卓.app.ActivityThread.main(ActivityThread.java:5059) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at com.example.serg_shapoval.astrologyes.BDMapsActivity.onCreate(BDMapsActivity.java:22) at 安卓.app.Activity.performCreate(Activity.java:5312) at 安卓.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2178) at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2280) at 安卓.app.ActivityThread.access$800(ActivityThread.java:141) at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1202) at 安卓.os.Handler.dispatchMessage(Handler.java:102) at 安卓.os.Looper.loop(Looper.java:136) at 安卓.app.ActivityThread.main(ActivityThread.java:5059) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method)
# 1 楼答案
在取消引用之前,需要等待
mMap
不为null并分配给有效引用此外,您还错过了对
getMapAsync()
的调用: