我有一个最初用 Java 创建的程序,现在我正试图将其格式化为 Android 应用程序。该程序就像我在 Java 控制台中想要的那样工作,但当我将它作为 Android 应用程序运行时却不行。
这是我的活动类的相关代码:
public class ViewTeamStatsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_team_stats);
ArrayList<Team> teams = new ArrayList<Team>();
//Want to make sure there is a network available.
//This always returns true since I added the relevant permissions in the manifest
if (isNetworkAvailable()) {
Main m = new Main();
teams = m.download();
}
所以它调用了我的 Main 类,它最终调用了 Retrieve 类。然后这个类应该从特定的 url 检索 HTML 并将内容解析为可用数据并将其作为 ArrayList 返回。
//Retrieves the HTML from the specified URL and then parses it into usable data.
public ArrayList<Game> Retrieve(String url) {
this.url = url;
ArrayList<Game> data = new ArrayList<Game>();
try {
URL my_url = new URL(url);
URLConnection conn = my_url.openConnection();
//The following returns null when run "as an Android Application" but not in the Java console. Why?
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
sort.addBufferedReader(br);
data = sort.sort();
} catch (Exception ex) {
ex.printStackTrace();
}
return data;
}
所以我想我的问题是,如果程序在 Android 上运行,为什么 BufferedReader 'br' null ?我的代码缺少什么?
注意:我已经添加了相关权限,所以这不是这里的问题。