やりたいこと
Map上に、緯度経度、ズームレベルを表示する。
MapsActivity
1import androidx.fragment.app.FragmentActivity; 2 3import android.os.Bundle; 4import android.widget.TextView; 5 6import com.google.android.gms.maps.CameraUpdateFactory; 7import com.google.android.gms.maps.GoogleMap; 8import com.google.android.gms.maps.OnMapReadyCallback; 9import com.google.android.gms.maps.SupportMapFragment; 10import com.google.android.gms.maps.model.CameraPosition; 11import com.google.android.gms.maps.model.LatLng; 12import com.google.android.gms.maps.model.MarkerOptions; 13 14public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 15 16 private GoogleMap mMap; 17 private TextView centerLocationText; 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setUpMap(); 23 setContentView(R.layout.activity_maps); 24 // Obtain the SupportMapFragment and get notified when the map is ready to be used. 25 //SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 26 // .findFragmentById(R.id.map); 27 //mapFragment.getMapAsync(this); 28 29 centerLocationText=(TextView)findViewById(R.id.center_location_textView); 30 31 } 32 33 //Override 34 /*public void onMapReady(GoogleMap googleMap) { 35 mMap = googleMap; 36 37 // Add a marker in Sydney and move the camera 38 LatLng sydney = new LatLng(-34, 151); 39 mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 40 mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 41 mMap.setMyLocationEnabled(true); 42 }*/ 43 44 private void setUpMap(){ 45 mMap.addMarker(new MarkerOptions().position(new LatLng(0,0)).title("Maker")); 46 mMap.setMyLocationEnabled(true); 47 mMap.setTrafficEnabled(false); 48 mMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() { 49 @Override 50 public void onCameraChange(CameraPosition cameraPosition) { 51 double zoomLevel=cameraPosition.zoom; 52 double latitude=cameraPosition.target.latitude; 53 double longitude=cameraPosition.target.longitude; 54 55 String centerText="zoom level"+zoomLevel+"\n" 56 57 +"latitude"+latitude+"\n" 58 59 +"longitude"+longitude; 60 centerLocationText.setText(centerText); 61 62 } 63 }); 64 65 66} 67 68}
エラー
ビルドを完了し、デバッグすると以下のエラーが出ます。
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.regu1.maptest1/com.regu1.maptest1.MapsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.maps.model.Marker com.google.android.gms.maps.GoogleMap.addMarker(com.google.android.gms.maps.model.MarkerOptions)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2827)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2902)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1603)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:169)
at android.app.ActivityThread.main(ActivityThread.java:6578)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.maps.model.Marker com.google.android.gms.maps.GoogleMap.addMarker(com.google.android.gms.maps.model.MarkerOptions)' on a null object reference
at com.regu1.maptest1.MapsActivity.setUpMap(MapsActivity.java:47)
at com.regu1.maptest1.MapsActivity.onCreate(MapsActivity.java:24)
at android.app.Activity.performCreate(Activity.java:7016)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2780)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2902)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1603)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:169)
at android.app.ActivityThread.main(ActivityThread.java:6578)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
あなたの回答
tips
プレビュー