【发布时间】:2019-02-01 08:34:47
【问题描述】:
CalendarParse parser = new CalendarParse();
parser.countSundays(this);
public class CalendarParse {
String calString = "";
Document cal = null;
InputStream is = null;
public void countSundays(Context context)
{
AssetManager assMan = context.getAssets();
try
{
System.out.println("Trying");
InputStream is = assMan.open("assets/brownbear.html");
if (is == null){
Log.i("FAIL","File not found.");
}
else{
Log.i("SUCCESS","We did it");
}
Document cal = Jsoup.parse(is, "utf-8", "ob stuff");
Element calBlock = cal.select("table#CalBlock").first();
Element calRows = calBlock.select("tr").get(0);
Log.i("SUCCESS","Parsing has occurred");
System.out.println(calRows.toString());
}
catch(IOException e){
System.out.println("IO Exception at local calendar asset");
}
}
brownbear.html 位于 assets 文件夹中,并将其写入 Main Activity。最初它是一个单独的 .java 类,但是当它在 Main Activity 之外时,我无法准确地确定“上下文”如何影响 AssetManager,并且我试图在故障排除时减少未知数。
正如所写,“尝试”打印出来,没有 Log.i 打印出来(大概是因为我们在
InputStream is = assMan.open("assets/brownbear.html");
) “本地日历资产的 IO 异常”总是打印出来。
如果我将该行更改为
assMan.open("brownbear.html");
然后“SUCCESS”“我们做到了”运行,但发生致命异常:
2019-02-01 02:28:06.069 5637-5637/? E/AndroidRuntime: 致命异常: main 进程:com.myapplication.schedulo,PID:5637 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.myapplication.schedulo/com.myapplication.schedulo.MainActivity}:java.lang.NullPointerException:尝试调用虚拟方法 'org.jsoup.select.Elements org.jsoup。 nodes.Element.select(java.lang.String)' 在空对象引用上
我做错了什么??
【问题讨论】:
标签: java android jsoup android-assetmanager