Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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 少数设备的AsyncTask OutputStream失败_Android_Android Asynctask - Fatal编程技术网

Android 少数设备的AsyncTask OutputStream失败

Android 少数设备的AsyncTask OutputStream失败,android,android-asynctask,Android,Android Asynctask,我的片段中有两个异步任务。首先加载(AsyncTask1)初始数据集,然后在向下滚动应用程序时加载后续数据 这两个任务在emulator(Pixel、Nexus设备)中都能完美工作。当我滚动时,第二个任务无缝地加载新数据 但是,当我在三星Note 4、三星A5和其他设备上运行应用程序时,AsyncTask1正常工作,但AsyncTask2在下面一行之后停止执行。我在Moto手机上试过,效果很好 OutputStream outputStream1 = httpURLConnection.getO

我的片段中有两个异步任务。首先加载(AsyncTask1)初始数据集,然后在向下滚动应用程序时加载后续数据

这两个任务在emulator(Pixel、Nexus设备)中都能完美工作。当我滚动时,第二个任务无缝地加载新数据

但是,当我在三星Note 4、三星A5和其他设备上运行应用程序时,AsyncTask1正常工作,但AsyncTask2在下面一行之后停止执行。我在Moto手机上试过,效果很好

OutputStream outputStream1 = httpURLConnection.getOutputStream();
下面是我的AsyncTask2的doInBackground方法

@Override
    protected String doInBackground(Integer... args) {
        String arg_item_number = String.valueOf((args[0]*5));
        np_page = args[0];
        String arg_language;

        if (args[1]==1){
            arg_language = "en";
        }else{
            arg_language = "hi";
        }
        try {
            URL url1 = new URL(url_get_next_posts);
            HttpURLConnection httpURLConnection = (HttpURLConnection) url1.openConnection();
            httpURLConnection.setRequestMethod("POST");
            httpURLConnection.setDoOutput(true);
            OutputStream outputStream1 = httpURLConnection.getOutputStream();
            BufferedWriter bufferedWriter1 = new BufferedWriter(new OutputStreamWriter(outputStream1,"UTF-8"));
            String data_string_language1 = URLEncoder.encode("item_number","UTF-8")+"="+URLEncoder.encode(arg_item_number,"UTF-8")
                    +"&"+URLEncoder.encode("selected_language","UTF-8")+"="+URLEncoder.encode(arg_language,"UTF-8");
            bufferedWriter1.write(data_string_language1);
            bufferedWriter1.flush();
            bufferedWriter1.close();
            outputStream1.close();

            InputStream inputStream = httpURLConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            StringBuilder stringBuilder = new StringBuilder();

            while ((JSON_NEXT_POST = bufferedReader.readLine()) != null) {
                stringBuilder.append(JSON_NEXT_POST + "\n");
            }
            bufferedReader.close();
            inputStream.close();
            httpURLConnection.disconnect();

            return stringBuilder.toString().trim();

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }
错误日志

I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
D/tag_item_count: 1
I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@8bda7dd time:13839484
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
W/System.err: java.net.UnknownHostException: http:websitenname.com/script_url.php
W/System.err:     at com.android.okhttp.internal.http.HttpEngine.createAddress(HttpEngine.java:1347)
W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:439)
W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:353)
W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:476)
W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:118)
W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:249)
W/System.err:     at com.app_name.android.app_name.PostTab$BackgroundNextPostsJSON.doInBackground(PostTab.java:374)
W/System.err:     at com.app_name.android.app_name.PostTab$BackgroundNextPostsJSON.doInBackground(PostTab.java:347)
W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:295)
W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
W/System.err:     at java.lang.Thread.run(Thread.java:818)
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
它是否与手机上运行的Android版本有关(注4运行的是6.0.1)?我不知道代码有什么问题,因为它实际上在emulator和Moto手机上工作。该问题是否也会出现在其他非三星设备上

在stacktrace中
http:websitenname.com/
是无效的URL,因为它在URL方案中缺少双斜杠。应该是
http://websitenname.com/
可能吧


它在emulator和一些设备上起作用,可能是因为它们有一些未记录的改进,甚至尝试打开无效的URL。

@VladMatvienko感谢您指出这一点。不知怎的,我错过了URL中的“/”。它开始工作了。有趣的是,它在emulator和少数没有“/”的设备上工作。我将把我的评论变成答案。我之前没有发布答案,因为我不确定你只是无意中展示了一个例子。