0

このエラーはどういう意味ですか?

以下は私のlogcat出力です:

01-23 17:09:29.120: W/System.err(24339): java.io.EOFException
01-23 17:09:29.120: W/System.err(24339):    at libcore.io.Streams.readAsciiLine(Streams.java:203)
01-23 17:09:29.120: W/System.err(24339):    at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:544)
01-23 17:09:29.120: W/System.err(24339):    at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:784)
01-23 17:09:29.120: W/System.err(24339):    at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
01-23 17:09:29.120: W/System.err(24339):    at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
01-23 17:09:29.130: W/System.err(24339):    at libcore.net.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:270)
01-23 17:09:29.130: W/System.err(24339):    at com.sfcca.coverflow.Store$downloadMagazine.doInBackground(Store.java:881)
01-23 17:09:29.130: W/System.err(24339):    at com.sfcca.coverflow.Store$downloadMagazine.doInBackground(Store.java:1)
01-23 17:09:29.130: W/System.err(24339):    at android.os.AsyncTask$2.call(AsyncTask.java:264)
01-23 17:09:29.130: W/System.err(24339):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
01-23 17:09:29.130: W/System.err(24339):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-23 17:09:29.130: W/System.err(24339):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
01-23 17:09:29.130: W/System.err(24339):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-23 17:09:29.130: W/System.err(24339):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-23 17:09:29.130: W/System.err(24339):    at java.lang.Thread.run(Thread.java:856)

logcatによると、これはエラーが発生するコードの一部です。サーバーから画像のURLを取得して、ダウンロードしようとしています。

try {
                    HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
                    conn.setDoInput(true);
                    conn.connect();
                    InputStream in = conn.getInputStream();
                    Log.i("im connected", "Download");
                    bmImg = BitmapFactory.decodeStream(in);

                    File filename;
                    try {
                         // GET EXTERNAL STORAGE, SAVE FILE THERE
                        File storagePath = new File(Environment.getExternalStorageDirectory(),"/Futsing/issue"+issueNumber+"/");
                        storagePath.mkdirs();

                        filename = new File(storagePath + "/page"+number+".jpg");
                        FileOutputStream out = new FileOutputStream(filename);
                        bmImg.compress(Bitmap.CompressFormat.JPEG, 90, out);

                        out.flush();
                        out.close();
                        in.close();
                        MediaStore.Images.Media.insertImage(getContentResolver(),filename.getAbsolutePath(), filename.getName(),
                                filename.getName());          


                         // displayImage();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }   
                } catch (IOException e) {
                    e.printStackTrace();
                }
4

3 に答える 3

1

このAndroid HttpsUrlConnection eofexceptionから試してください

追加する必要があるようです

if (Build.VERSION.SDK != null && Build.VERSION.SDK_INT > 13) { urlConnect.setRequestProperty("Connection", "close"); }
于 2014-01-24T05:13:02.690 に答える
0

EOFExceptionは、ファイルの終わり(EOF)例外を意味します。EOFは、ファイルの終わりを示すために使用されます。通常、ファイルを最後まで読み取りたい場合は、条件EOFが到達していない状態でwhile操作を実行します。

これは、文字列の最後にある「/0」にいくぶん似ています。代わりに、EOFを使用してファイルの終わりをマークします

EOFに達した後にファイルを読み取ろうとしている可能性があります。これにより、例外が発生します。

于 2013-01-23T09:28:41.127 に答える
0

私の場合の問題は、ファイルのアップロードに使用していたネットワーク接続でした。ネットワーク接続を(LAN wifiネットワークに)切り替えた後、すべてが機能しました。ローカルサーバーでテストしていて、LANネットワーク以外の外部ネットワーク接続を使用してファイルをアップロードしようとしていました. お役に立てれば。

于 2018-05-31T11:12:24.670 に答える