有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Logcat中的java错误

我想显示coordinates用户在 编辑文本,我想使用api naver平台提供

我搜索了一下,知道也许我需要解析 doInBackground。。对吗

    <MainActivity.java>
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        btnShowCoord = (Button)findViewById(R.id.btnShowCoordinates);
        edtAddress = (EditText) findViewById(R.id.edtAddress);
        txtCoord = (TextView) findViewById(R.id.txtCoordinates);

        btnShowCoord.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new GetCoordinates().execute(edtAddress.getText().toString().replace(" ","+"));

            }
        });

    }
    private class GetCoordinates extends AsyncTask<String, Void, String>{
        ProgressDialog dialog = new ProgressDialog(MainActivity.this);

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
                dialog.setMessage("Please wait....'");
                dialog.setCanceledOnTouchOutside(false);
                dialog.show();
            }


        @Override
        protected String doInBackground(String... strings) {
            String response;
            try{
                String address = strings[0];
                HttpDataHandler http = new HttpDataHandler();
                String url = String.format("https://naveropenapi.apigw.ntruss.com/map-geocode/v2/geocode",address);
               // String url = String.format("https://maps.googleapis.com/maps/api/geocode/json?address=%s",address);

                response = http.getHTTPData(url);
                return response;

            }
            catch (Exception ex)
            {

            }
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            try{
                if(dialog.isShowing())
                    dialog.dismiss();
                JSONObject jsonObject = new JSONObject(s);


                String lat = ((JSONArray)jsonObject.get("addresses")).getJSONObject(0).get("x").toString();
                String lng = ((JSONArray)jsonObject.get("addresses")).getJSONObject(0).get("y").toString();

                //String lat = ((JSONArray)jsonObject.get("results")).getJSONObject(0).getJSONObject("geometry")
                //        .getJSONObject("location").get("lat").toString();
                //String lng = ((JSONArray)jsonObject.get("results")).getJSONObject(0).getJSONObject("geometry")
                //        .getJSONObject("location").get("lng").toString();



                txtCoord.setText(String.format("Coordinates : %s / %s", lat, lng));




            } catch (JSONException e) {
                e.printStackTrace();
            }
        }


    }
}




<HttpDataHandler.java>
public HttpDataHandler(){

    }
    public String getHTTPData(String requestURL)
    {
        URL url;
        String response = "";
        try{
            String addr = URLEncoder.encode("분당구 불정로 6", "UTF-8");  //주소입력
            String apiURL = "https://naveropenapi.apigw.ntruss.com/map-geocode/v2/geocode?query=분당구 불정로 6" + addr; //json
            //String apiURL = "https://openapi.naver.com/v1/map/geocode.xml?query=" + addr; // xml

            url = new URL(requestURL );
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            conn.setRequestMethod("GET");
            conn.setRequestProperty("X-NCP-APIGW-API-KEY-ID", CLIENT_ID);
            conn.setRequestProperty("X-NCP-APIGW-API-KEY", CLIENT_SECRET);
            conn.setReadTimeout (15000);
            conn.setConnectTimeout(15000);
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setRequestProperty("Content-Type","application/x-www-fom-urlencoded");

            int responseCode = conn.getResponseCode();
            if(responseCode == HttpsURLConnection.HTTP_OK)
            {
                String line;
                BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                while((line = br.readLine()) != null)
                    response += line;
            }
            else
                response = "";
        } catch (ProtocolException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return response;
    }
}


2019-08-21 22:47:23.604 29249-29249/com.example.hermes_hg_geocoding W/System.err: org.json.JSONException: End of input at character 0 of 
2019-08-21 22:47:23.605 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at org.json.JSONTokener.syntaxError(JSONTokener.java:460)
2019-08-21 22:47:23.606 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at org.json.JSONTokener.nextValue(JSONTokener.java:101)
2019-08-21 22:47:23.606 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:164)
2019-08-21 22:47:23.606 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:181)
2019-08-21 22:47:23.606 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at com.example.hermes_hg_geocoding.MainActivity$GetCoordinates.onPostExecute(MainActivity.java:86)
2019-08-21 22:47:23.606 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at com.example.hermes_hg_geocoding.MainActivity$GetCoordinates.onPostExecute(MainActivity.java:49)
2019-08-21 22:47:23.606 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at 安卓.os.AsyncTask.finish(AsyncTask.java:755)
2019-08-21 22:47:23.606 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at 安卓.os.AsyncTask.access$900(AsyncTask.java:192)
2019-08-21 22:47:23.607 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at 安卓.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:772)
2019-08-21 22:47:23.607 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at 安卓.os.Handler.dispatchMessage(Handler.java:107)
2019-08-21 22:47:23.607 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at 安卓.os.Looper.loop(Looper.java:214)
2019-08-21 22:47:23.607 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at 安卓.app.ActivityThread.main(ActivityThread.java:7319)
2019-08-21 22:47:23.607 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2019-08-21 22:47:23.607 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at com.安卓.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
2019-08-21 22:47:23.607 29249-29249/com.example.hermes_hg_geocoding W/System.err:     at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:934)
2019-08-21 22:47:23.646 29249-30304/com.example.hermes_hg_geocoding D/EGL_emulation: eglMakeCurrent: 0xd551a120: ver 3 0 (tinfo 0xd550f740)

共 (0) 个答案