我在使用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>
答案 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)
希望有所帮助: - )