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" "We did it" 运行,但发生致命异常:
2019-02-01 02:28:06.069 5637-5637/?E/AndroidRuntime:致命异常:主进程: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)”
我究竟做错了什么??