2016-06-27 5 views
1

アンドロイドスタジオのサーバーへの接続に問題があり、ファイルtxtを読み取りました。 その後、AsyncTaskを使用しますが、問題は、アプリケーションを開いて関数を試してみるとエラーです。 これはコードです:Android StudioでAsyncTaskを使用してインターネットでファイルを読み取る方法は?

private class LongOperation extends AsyncTask<String, Void, String> { 
    @Override 
    protected String doInBackground(String... params) { 
     URL url = null; 
     try { 
      url = new URL("http://tmtsite.altervista.org/Agata/in.txt"); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } 
     URLConnection conn = null; 
     try { 
      conn = url.openConnection(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     BufferedReader rd = null; 
     try { 
      rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     String line = ""; 
     StringBuilder builder = new StringBuilder(16384); 
     try { 
      while ((line = rd.readLine()) != null) { 


       builder.append(line); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return builder.toString(); 
    } 

    @Override 
    protected void onPostExecute(String result) { 

    } 

    @Override 
    protected void onPreExecute() {} 

    @Override 
    protected void onProgressUpdate(Void... values) {} 
    } 
} 

そして、これはスタックトレースです:

06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime: Process: damasoft.agata, PID: 22354 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime: java.lang.RuntimeException: An error occurred while executing doInBackground() 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at android.os.AsyncTask$3.done(AsyncTask.java:309) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.lang.Thread.run(Thread.java:818) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime: Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.net.InetAddress.lookupHostByName(InetAddress.java:464) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.net.InetAddress.getAllByName(InetAddress.java:215) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:220) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:176) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:108) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:482) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:465) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:447) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:353) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:468) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:118) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at damasoft.agata.MainActivity$LongOperation.doInBackground(MainActivity.java:111) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at damasoft.agata.MainActivity$LongOperation.doInBackground(MainActivity.java:95) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at 
android.os.AsyncTask$2.call(AsyncTask.java:295) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.lang.Thread.run(Thread.java:818) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime: Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at libcore.io.Posix.android_getaddrinfo(Native Method) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.net.InetAddress.lookupHostByName(InetAddress.java:451) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.net.InetAddress.getAllByName(InetAddress.java:215) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:220) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:176) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:108) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:482) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:465) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:447) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:353) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:468) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:118) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at damasoft.agata.MainActivity$LongOperation.doInBackground(MainActivity.java:111) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at damasoft.agata.MainActivity$LongOperation.doInBackground(MainActivity.java:95) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at android.os.AsyncTask$2.call(AsyncTask.java:295) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.lang.Thread.run(Thread.java:818) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime: Caused by: android.system.ErrnoException: android_getaddrinfo failed: EACCES (Permission denied) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at libcore.io.Posix.android_getaddrinfo(Native Method) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.net.InetAddress.lookupHostByName(InetAddress.java:451) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.net.InetAddress.getAllByName(InetAddress.java:215) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:220) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:176) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:108) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:482) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:465) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:447) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:353) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:468) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:118) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at damasoft.agata.MainActivity$LongOperation.doInBackground(MainActivity.java:111) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at damasoft.agata.MainActivity$LongOperation.doInBackground(MainActivity.java:95) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at android.os.AsyncTask$2.call(AsyncTask.java:295) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
    06-28 11:12:52.761 22354-22567/damasoft.agata E/AndroidRuntime:  at java.lang.Thread.run(Thread.java:818) 
+1

スタックトレースのようなので、あなたのmanifest.xmlファイルを見てください。 –

答えて

2

はによって引き起こさ

を言う許可拒否( を逃しますインターネット許可?)

マニフェストファイルにInternetパーミッションが定義されていることを確認してください。

使用この

<uses-permission android:name="android.permission.INTERNET"/> 

この

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.project"> 
<uses-permission android:name="android.permission.INTERNET"/> 
+0

@Elia D'Amatoはあなたをお待ちしております。 – Ironman

+0

ありがとう –

2

スタックトレースを示すが、観察することができる一つのことは、あなたが前接続メソッドを呼び出していないですしてくださいあなたはinputStreamを取得します。

  1. 接続オブジェクトがURLにOpenConnectionメソッド メソッドを呼び出すことによって作成されます。ここではドキュメントが言うことです。
  2. セットアップパラメータと一般要求プロパティ が操作されます。
  3. 実際のリモートオブジェクトへの接続は、 のconnectメソッドを使用して行われます。
  4. リモートオブジェクトが使用可能になります。ヘッダーフィールドとリモートオブジェクトの内容にアクセスできます。

が行います。前

conn.connect(); 

:java.lang.SecurityException:Logcatとして

rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
関連する問題