Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用不同的URL获取数据_Android_Url_Android Asynctask_Nullpointerexception - Fatal编程技术网

Android 使用不同的URL获取数据

Android 使用不同的URL获取数据,android,url,android-asynctask,nullpointerexception,Android,Url,Android Asynctask,Nullpointerexception,我需要从URL获取不同的数据。我的代码用于获取JSON数据。但是,我需要下载galleryActivity的图像。我尝试另一个异步任务,但我的应用程序崩溃 url:give JSON数据: [{"id":"590c7612c1e2a8289404c991","droneId":1212,"gps":"41,-8","url":"1493988882.jpg","googleData":null},{"id":"5919f9be32785a2ebc90a6a1","droneId":2,"gps"

我需要从URL获取不同的数据。我的代码用于获取JSON数据。但是,我需要下载galleryActivity的图像。我尝试另一个异步任务,但我的应用程序崩溃

url:give JSON数据:

[{"id":"590c7612c1e2a8289404c991","droneId":1212,"gps":"41,-8","url":"1493988882.jpg","googleData":null},{"id":"5919f9be32785a2ebc90a6a1","droneId":2,"gps":"41.17784570000001,-8.608100599999943","url":"1494874557.jpg","googleData":null},{"id":"5919fa0d32785a2ebc90a6a4","droneId":2,"gps":"41.174247,-8.60360700000001","url":"1494874637.jpg","googleData":null},{"id":"5919fa3332785a2ebc90a6a7","droneId":2,"gps":"41.1456753,-8.614598500000056","url":"1494874675.jpg","googleData":null},{"id":"591c2bf632785a2dc83319fc","droneId":1,"gps":"41.1530568,-8.610164599999962","url":"1495018486.jpg","googleData":null},{"id":"591c2c6f32785a2dc83319ff","droneId":1,"gps":"41.1588059,-8.621924799999988","url":"1495018607.jpg","googleData":null},{"id":"591ec3dd90f65236507f3204","droneId":1,"gps":"41.1588059,-8.621924799999988","url":"1495188443.jpg","googleData":null}]
url:给出一个字节为[]的图像

我测试在PostExecute()上启动第二个asynctask,但它无法

这是我的第一项任务:

class MyAsyncTask extends AsyncTask<String, Void, String> {


    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... params) {
        String resultString = null;
        resultString = getJSON(params[0]);
        pictureList = intializePictures(resultString);

        return resultString;
    }

    @Override
    protected void onPostExecute(String strings) {
        super.onPostExecute(strings);
        MyAsyncTaskImage task = new MyAsyncTaskImage();
        task.execute("http://192.168.1.111:8080/getImage?name=" + pictureList.get(0).url);
    }

    public String getJSON(String url) {
        HttpURLConnection c = null;
        try {
            URL u = new URL(url);
            c = (HttpURLConnection) u.openConnection();
            c.connect();
            int status = c.getResponseCode();
            switch (status) {
                case 200:
                case 201:
                    BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
                    StringBuilder sb = new StringBuilder();
                    String line;
                    while ((line = br.readLine()) != null) {
                        sb.append(line + "\n");
                    }
                    br.close();
                    return sb.toString();
            }

        } catch (Exception ex) {
            return ex.toString();
        } finally {
            if (c != null) {
                try {
                    c.disconnect();
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        }
        return null;
    }


    public List<Picture> intializePictures(String json) {
        List<Picture> listPictures = new ArrayList<Picture>();
        Picture picture;

        try {
            jsonArr = new JSONArray(json);
            for (int i = 0; i < jsonArr.length(); i++) {
                jsonObj = jsonArr.getJSONObject(i);
                picture = new Picture();
                picture.setDroneId(Integer.parseInt(jsonObj.getString("droneId")));
                picture.setGps(jsonObj.getString("gps"));
                picture.setUrl(jsonObj.getString("url"));

                listPictures.add(picture);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return listPictures;
    }
}

“但是我的应用程序崩溃”——使用LogCat检查与崩溃相关的Java堆栈跟踪:发布LogCat。请回答您的问题。logcat不是一个答案,所以它也不应该发布在那里,
com.huawei.lcagent
不是你的包名,我想,所以这不是你要找的正确的例外不,我想这不是问题所在
class MyAsyncTaskImage extends AsyncTask<String, Void, byte[]> {


    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected byte[] doInBackground(String... params) {
        byte[] img;
        img = getByteArrayImage(params[0]);
        return img;
    }

    @Override
    protected void onPostExecute(byte[] img) {
        super.onPostExecute(img);
        Bitmap bm = BitmapFactory.decodeByteArray(img, 0, img.length);
        bitmapList.add(bm);
    }

    private byte[] getByteArrayImage(String url) {
        try {
            URL imageUrl = new URL(url);
            URLConnection ucon = imageUrl.openConnection();

            InputStream is = ucon.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);

            ByteArrayBuffer baf = new ByteArrayBuffer(500);
            int current = 0;
            while ((current = bis.read()) != -1) {
                baf.append((byte) current);
            }

            return baf.toByteArray();
        } catch (Exception e) {
            Log.d("ImageManager", "Error: " + e.toString());
        }
        return null;
    }
}
05-27 15:55:17.471 3470-3485/? W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.huawei.lcagent.client.LogCollectManager.getUserType()' on a null object reference
05-27 15:55:17.471 3470-3485/? W/System.err: at com.android.server.util.ReportTools.getUserType(ReportTools.java:86)
05-27 15:55:17.471 3470-3485/? W/System.err: at com.android.server.util.ReportTools.isBetaUser(ReportTools.java:73)
05-27 15:55:17.471 3470-3485/? W/System.err: at com.android.server.util.ReportTools.report(ReportTools.java:58)
05-27 15:55:17.471 3470-3485/? W/System.err: at com.android.server.util.HwUserBehaviourRecord.appExitRecord(HwUserBehaviourRecord.java:65)
05-27 15:55:17.471 3470-3485/? W/System.err: at com.android.server.am.ActivityManagerService$UiHandler.handleMessage(ActivityManagerService.java:1572)
05-27 15:55:17.471 3470-3485/? W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
05-27 15:55:17.471 3470-3485/? W/System.err: at android.os.Looper.loop(Looper.java:150)
05-27 15:55:17.471 3470-3485/? W/System.err: at android.os.HandlerThread.run(HandlerThread.java:61)
05-27 15:55:17.471 3470-3485/? W/System.err: at com.android.server.ServiceThread.run(ServiceThread.java:46)