在android中编写.ics文件时出现nullpointer错误

时间:2013-12-24 21:04:26

标签: android fileoutputstream ical4j

我是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>

2 个答案:

答案 0 :(得分:0)

原因很可能是因为您没有在FileOutputStream实例的数据分区中使用sdcard或应用程序的分区。您可以通过Environment类中的静态字段进行这些操作。

答案 1 :(得分:0)

第一次尝试后&amp; catch块 - 确保fout不为null。

相关问题