Android无法从URL读取

时间:2011-08-21 22:20:04

标签: java android android-emulator

我在使用URL类从Android工作区中的文件中读取文本时遇到问题。我得到一个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 :(得分:0)

也许您的信息流已压缩: GZIPInputStream fails with IOException in Android 2.3, but works fine in all previous releases?

如果您不使用缓冲输入流,您可以阅读网址内容吗?

另外,我经常使用url.getContent并将其强制转换为输入流,这样可行,我不熟悉url.openStream。

此致  斯特凡

答案 1 :(得分:0)

如果我将代码粘贴到当前项目中并运行它,您的代码就可以正常运行而不会抛出异常。我的目标是4-8。

答案 2 :(得分:-1)

希望有所帮助: - )