【问题标题】:java.lang.RuntimeException: Unable to start activity java.lang.NullPointerException 02-21 22:55:01.480: E/Andjava.lang.RuntimeException:无法启动活动 java.lang.NullPointerException 02-21 22:55:01.480:E/And
【发布时间】:2015-02-21 16:05:08
【问题描述】:

我想制作地图并在谷歌地图中显示所有标记或位置。我已经为纬度和经度创建了一个类数据库。我在谷歌地图中调用纬度和经度来查看位置。我有这个代码

public void onLocationChanged(Location location) {
        Intent intent = new Intent(getApplicationContext(),Database_Puskesmas.class);

        msg_latitude = intent.getStringExtra("dataLatitude");
        msg_longitude = intent.getStringExtra("dataLogitude");

        double la = Double.parseDouble(msg_latitude);
        double lo = Double.parseDouble(msg_longitude);

        //Database_Puskesmas db = new Database_Puskesmas(this);

         LatLng latLng = new LatLng(la, lo);

        Marker marker = googleMap.addMarker(new MarkerOptions()
        .position(latLng).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));

        googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));

    }

但是当我运行程序时,我得到以下错误:

02-21 22:55:01.480: E/AndroidRuntime(4072): FATAL EXCEPTION: main
02-21 22:55:01.480: E/AndroidRuntime(4072): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.application.bpjs/com.application.bpjs.PetaPuskesmas_Activity}: java.lang.NullPointerException
02-21 22:55:01.480: E/AndroidRuntime(4072):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at android.app.ActivityThread.access$700(ActivityThread.java:134)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at android.os.Looper.loop(Looper.java:137)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at android.app.ActivityThread.main(ActivityThread.java:4867)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at java.lang.reflect.Method.invokeNative(Native Method)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at java.lang.reflect.Method.invoke(Method.java:511)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at dalvik.system.NativeStart.main(Native Method)
02-21 22:55:01.480: E/AndroidRuntime(4072): Caused by: java.lang.NullPointerException
02-21 22:55:01.480: E/AndroidRuntime(4072):     at java.lang.StringToReal.parseDouble(StringToReal.java:244)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at java.lang.Double.parseDouble(Double.java:295)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at com.application.bpjs.PetaPuskesmas_Activity.onLocationChanged(PetaPuskesmas_Activity.java:491)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at com.application.bpjs.PetaPuskesmas_Activity.onCreate(PetaPuskesmas_Activity.java:151)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at android.app.Activity.performCreate(Activity.java:5047)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
02-21 22:55:01.480: E/AndroidRuntime(4072):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056)
02-21 22:55:01.480: E/AndroidRuntime(4072):     ... 11 more
02-21 22:55:10.409: I/Process(4072): Sending signal. PID: 4072 SIG: 9

【问题讨论】:

    标签: java android eclipse google-maps


    【解决方案1】:

    这里:

        Intent intent = new Intent(getApplicationContext(),Database_Puskesmas.class);
        msg_latitude = intent.getStringExtra("dataLatitude");
        msg_longitude = intent.getStringExtra("dataLogitude");
    

    只准备意图而不添加 dataLatitudedataLogitude 键并绑定从 Intent 获取两个键。

    使用onLocationChanged方法location参数获取LatitudeLogitudelike:

    double la = location.getLatitude();
    double lo = location.getLongitude();
    

    【讨论】:

    • for location.getlatiude();这只是为了显示我的位置而不是显示数据库中的所有位置,我很困惑如何调用数据库中的所有位置来制作标记。不是一个标记而是所有标记,如果我的数据库有 10 个数据库,则在我的地图中显示所有 10 个标记
    • @yunikhoirunnisa:然后从 db 获取所有坐标并显示在地图中。什么问题?
    • 当我点击按钮显示地图所有位置时,问题是关闭的。但我将那是正在运行的 cmets 的代码。又怎样?我如何显示数据库中的所有坐标
    • @yunikhoirunnisa:首先从 db 中读取所有坐标,然后在 map.show 中显示从 db 读取的代码
    • 就像这样'Inten intent = getInten();' '双拉 = Double.parseDouble(msg_latitude); '??
    猜你喜欢
    • 2014-05-10
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多