Android не может читать с URL - PullRequest
2 голосов
/ 22 августа 2011

У меня проблемы с чтением текста из файла в рабочей области Android с использованием класса URL.Я получаю исключение NetworkOnMainThreadException.Тот же самый точный код работает за пределами рабочей области Android, поэтому он должен быть проблемой сети или разрешений.Я создал основной текстовый файл по указанной ссылке.Похоже, что это сбой на url.openStream.Ниже приведен код, за которым следует мой файл манифеста (где я уже добавил строку с правами на использование.)

  static public String[] barList()
{ 
   ArrayList<String> bars = new ArrayList<String>();
   try{
       URL url = new URL("****");
       BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
       String line = br.readLine();
       while(line != null)
       {
           bars.add(line);
           line = br.readLine();
       }
       br.close();
   }
   catch (IOException e) {
       e.printStackTrace();
   }
   return (String[])bars.toArray();
}

Вот файл манифеста.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="aexp.explist">
<application>
    <activity android:name=".ExpList" android:label="ExpList">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest> 

Ответы [ 3 ]

0 голосов
/ 22 августа 2011

Ваш код работает правильно, без исключения, если я вставлю его в свой текущий проект и выполню его. Я нацеливаюсь на SDK 4-8.

0 голосов
/ 21 февраля 2012

Надеюсь, это поможет: -)

0 голосов
/ 22 августа 2011

Может быть, ваш поток заархивирован: Сбой GZIPInputStream с IOException в Android 2.3, но отлично работает во всех предыдущих выпусках?

если вы не используете буферизованный поток ввода, можете ли вы прочитать содержимое URL?

Кроме того, я часто использую url.getContent и преобразую его во входной поток, и это работает, я не знаком с url.openStream.

С уважением, Stéphane

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...