Java 需要从服务器获取用户当前详细信息

Java 需要从服务器获取用户当前详细信息,java,android,json,android-location,Java,Android,Json,Android Location,我对android位置部分不熟悉,但是userA当前位置发布到服务器,但是在获取userA位置并在userB屏幕中显示它时遇到了相当多的问题 我所做的是使用Volley库从服务器获取位置,并通过每隔1秒自动刷新页面的方式将其发布到onMapReady方法中,但它会在 NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String java.lang.String.trim()” 如果我的方法是错误的,你能帮我建议一个吗 这是我在项目中实现的代码 priv

我对android位置部分不熟悉,但是userA当前位置发布到服务器,但是在获取userA位置并在userB屏幕中显示它时遇到了相当多的问题

我所做的是使用Volley库从服务器获取位置,并通过每隔1秒自动刷新页面的方式将其发布到onMapReady方法中,但它会在 NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String java.lang.String.trim()”

如果我的方法是错误的,你能帮我建议一个吗

这是我在项目中实现的代码

private void fetchLocation(){
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                StringRequest request = new StringRequest(Request.Method.GET, Constant.LocationTrackingURL, new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject object = new JSONObject(response);
                            JSONArray array = object.getJSONArray("resp");
                            for (int i=0; i<array.length(); i++){
                                JSONObject jsonObject = array.getJSONObject(i);
                                newLatitude = jsonObject.getString("loc_latitude").trim();
                                newLongitude = jsonObject.getString("loc_longitude").trim();
                                Toast.makeText(MapAct.this, newLatitude+", "+newLongitude, Toast.LENGTH_SHORT).show();
                                addmarkerToMap(newLatitude, newLongitude);
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                            Toast.makeText(getApplicationContext(), "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
                        }
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });

                RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
                queue.add(request);
            }
        }, 1000);

        SupportMapFragment mapFragment = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.maps);
        mapFragment.getMapAsync(new OnMapReadyCallback() {
            @Override
            public void onMapReady(GoogleMap googleMap) {
                Double lat = Double.parseDouble(newLatitude);
                Double lng = Double.parseDouble(newLongitude);
                LatLng latLng = new LatLng(lat, lng);
                googleMap.addMarker(new MarkerOptions().position(latLng).title("I'm here"));
                CameraPosition cameraPosition = new CameraPosition.Builder().target(latLng).zoom(17).build();
                googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
            }
        });
    }

    private void addmarkerToMap(String newLat, String newLng){
        double lat = Double.parseDouble(newLat);
        double lng = Double.parseDouble(newLng);
        Toast.makeText(this, "Locations are getting posted as latitude : "+lat+", longitude : "+lng, Toast.LENGTH_SHORT).show();
        MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(lat, lng)).title("I'm Here");
        markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
        mMap.addMarker(markerOptions);
    }
private void fetchLocation(){
handler.postDelayed(新的Runnable(){
@凌驾
公开募捐{
StringRequest=新StringRequest(request.Method.GET,Constant.LocationTrackingURL,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject对象=新的JSONObject(响应);
JSONArray数组=object.getJSONArray(“resp”);

for(int i=0;iyour
jsonObject.getString()
正在返回
null
。您确定
jsonObject
的键正确吗?请添加您的JSON响应。这将有助于查找。这是我从服务器“status”得到的响应:true,“resp”:[{“loc u纬度”:“12.277751”,“loc u经度”:“76.6146748”}]看起来您的JSON解析正确。我认为您收到的
“loc_latitude”
null
。您是否可以检查
JSONObject object=new JSONObject(response);
并查看您得到的键值(使用调试器)