【发布时间】:2011-11-01 14:35:57
【问题描述】:
我正在编写一个需要将事件插入 Google 日历的 Android 应用。我在我的两部安卓手机上运行我的应用程序,一切都成功了。但是,会收到其他人的一些崩溃报告。它们在以下代码的最后一行有空指针异常。
(顺便说一句,我已经按照Is there a way to access the calendar's entries without using gdata-java-client?处理了谷歌日历的两个不同URI)
整个源代码文件:http://gonow.no-ip.org/hkpl/GoogleCalendar.java
我通过这个在另一个类中调用函数addEvent
GoogleCalendar.addEvent(getContentResolver(),EVENT_TITLE,CONTENT);
提取:
ContentValues event = new ContentValues();
event.put("title", title);
event.put("description", description);
event.put("calendar_id",calId);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH, 1);
long start = cal.getTime().getTime();
event.put("dtstart", start);
cal.add(Calendar.DAY_OF_MONTH, 1);
long end = cal.getTime().getTime();
event.put("dtend", end);
event.put("hasAlarm",1);
event.put("allDay", 1);
Uri newEvent = cr.insert(Uri.parse(calanderEventURL), event); <-- exception here
崩溃报告在这里
java.lang.RuntimeException: 执行时出错 doInBackground() 在 android.os.AsyncTask$3.done(AsyncTask.java:200) 在 java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274) 在 java.util.concurrent.FutureTask.setException(FutureTask.java:125) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308) 在 java.util.concurrent.FutureTask.run(FutureTask.java:138) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 在 java.lang.Thread.run(Thread.java:1019) 引起: java.lang.NullPointerException 在 android.os.Parcel.readException(Parcel.java:1328) 在 android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160) 在 android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114) 在 android.content.ContentProviderProxy.insert(ContentProviderNative.java:408) 在 android.content.ContentResolver.insert(ContentResolver.java:604) 在 ming.hkpl.GoogleCalendar.addEvent(GoogleCalendar.java:93)
【问题讨论】:
-
第 93 行是什么?也许您可以在代码中添加行号。
-
正如我上面提到的,它位于代码的最后一行,即。 Uri newEvent = cr.insert(Uri.parse(calanderEventURL), event);谢谢:)
-
我很困惑。这不只是意味着 cr 为空吗?抱歉,如果我遗漏了一些明显的东西!
-
对不起,让我上传我的整个源代码
-
@Bear:请使用 Google 日历 GData API 修改用户的 Google 日历。
标签: java android debugging calendar