我是fileoutputstream和ical4j的新手。当我尝试运行此代码时,我在第二个try / catch中得到一个空指针错误。第一次尝试/ catch后,fout的值为null。代码有什么问题?虽然不太可能,但是我还没有在android清单中声明一些权限/其他东西吗?
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.set(java.util.Calendar.MONTH, java.util.Calendar.DECEMBER);
cal.set(java.util.Calendar.DAY_OF_MONTH, 26);
VEvent christmas = new VEvent(new Date(cal.getTime()), "Post-Christmas Day");
christmas.getProperties().getProperty(Property.DTSTART).getParameters().add(Value.DATE);
FileOutputStream fout = null;
try {
fout = new FileOutputStream("mycalendar.ics");
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
CalendarOutputter outputter = new CalendarOutputter();
try {
outputter.output(calendar, fout);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ValidationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
清单文件如下:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
和
<activity android:name=".Cal"></activity>
答案 0 :(得分:0)
原因很可能是因为您没有在FileOutputStream实例的数据分区中使用sdcard或应用程序的分区。您可以通过Environment类中的静态字段进行这些操作。
答案 1 :(得分:0)
第一次尝试后&amp; catch块 - 确保fout不为null。