java.lang.IllegalArgumentException异常:坏类:类java.lang.String? [英] java.lang.IllegalArgumentException: Bad class: class java.lang.String?
本文介绍了java.lang.IllegalArgumentException异常:坏类:类java.lang.String?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请我得到这个错误,我不明白。
这是code:
光标光标= context.getContentResolver()
.query(Uri.parse(内容://com.android.calendar/events),
新的String [] {CALENDAR_ID,标题,说明,
DTSTART,DTEND,eventLocation,allDay},空,
NULL,NULL);
cursor.moveToFirst();
//获取日历名称
字符串的CNAME [] =新的String [cursor.getCount()]; 的for(int i = 0; I< CNames.length;我++){ 日期格式DF =新的SimpleDateFormat(YYYY-MM-DD,Locale.US);
串天= df.format(cursor.getString(3));
这是LogCat中:
10月8日至30日:07:09.560:E / AndroidRuntime(5008):致命异常:主要
10月8日至30日:07:09.560:E / AndroidRuntime(5008):java.lang.IllegalArgumentException异常:错误类:类java.lang.String
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在java.text.DateFormat.format(DateFormat.java:296)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在java.text.Format.format(Format.java:93)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在com.examples.android.calendar.Utility.readCalendarEvent(Utility.java:46)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在com.examples.android.calendar.CalendarView $ 1.run(CalendarView.java:185)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在android.os.Handler.handleCallback(Handler.java:730)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在android.os.Handler.dispatchMessage(Handler.java:92)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在android.os.Looper.loop(Looper.java:137)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在android.app.ActivityThread.main(ActivityThread.java:5103)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在java.lang.reflect.Method.invokeNative(本机方法)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在java.lang.reflect.Method.invoke(Method.java:525)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10月8日至30日:07:09.560:E / AndroidRuntime(5008):在dalvik.system.NativeStart.main(本机方法)
解决方案
阅读的日历提供商了解访问日历事件。
您所做的错误是:
- 请不要使用硬codeD字符串(DTSTART,..);使用
CalendarContract.EventsColumns $定义的常量C $ C>
为列名。 - 的<一个href=\"http://developer.android.com/reference/android/provider/CalendarContract.EventsColumns.html#DTSTART\"相对=nofollow>
DTSTART
和<一个href=\"http://developer.android.com/reference/android/provider/CalendarContract.EventsColumns.html#DTEND\"相对=nofollow>DTEND
列包含在长
格式开始和结束时间(毫秒以来纪元)。
Please I get this error that I do not understand.
This is the code:
Cursor cursor = context.getContentResolver()
.query(Uri.parse("content://com.android.calendar/events"),
new String[] { "calendar_id", "title", "description",
"dtstart", "dtend", "eventLocation","allDay" }, null,
null, null);
cursor.moveToFirst();
// fetching calendars name
String CNames[] = new String[cursor.getCount()];
for (int i = 0; i < CNames.length; i++) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
String day =df.format(cursor.getString(3));
This is the LogCat:
08-30 10:07:09.560: E/AndroidRuntime(5008): FATAL EXCEPTION: main
08-30 10:07:09.560: E/AndroidRuntime(5008): java.lang.IllegalArgumentException: Bad class: class java.lang.String
08-30 10:07:09.560: E/AndroidRuntime(5008): at java.text.DateFormat.format(DateFormat.java:296)
08-30 10:07:09.560: E/AndroidRuntime(5008): at java.text.Format.format(Format.java:93)
08-30 10:07:09.560: E/AndroidRuntime(5008): at com.examples.android.calendar.Utility.readCalendarEvent(Utility.java:46)
08-30 10:07:09.560: E/AndroidRuntime(5008): at com.examples.android.calendar.CalendarView$1.run(CalendarView.java:185)
08-30 10:07:09.560: E/AndroidRuntime(5008): at android.os.Handler.handleCallback(Handler.java:730)
08-30 10:07:09.560: E/AndroidRuntime(5008): at android.os.Handler.dispatchMessage(Handler.java:92)
08-30 10:07:09.560: E/AndroidRuntime(5008): at android.os.Looper.loop(Looper.java:137)
08-30 10:07:09.560: E/AndroidRuntime(5008): at android.app.ActivityThread.main(ActivityThread.java:5103)
08-30 10:07:09.560: E/AndroidRuntime(5008): at java.lang.reflect.Method.invokeNative(Native Method)
08-30 10:07:09.560: E/AndroidRuntime(5008): at java.lang.reflect.Method.invoke(Method.java:525)
08-30 10:07:09.560: E/AndroidRuntime(5008): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-30 10:07:09.560: E/AndroidRuntime(5008): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-30 10:07:09.560: E/AndroidRuntime(5008): at dalvik.system.NativeStart.main(Native Method)
解决方案
Read the API Guide on Calendar Provider to know about accessing the calendar events.
The mistakes you are making are:
- Do not use hard coded string literals ("dtstart", ..); use the constants defined in
CalendarContract.EventsColumns
for the column names. - The
DTSTART
andDTEND
columns contain the start and end time inlong
format (milliseconds since epoch).
这篇关于java.lang.IllegalArgumentException异常:坏类:类java.lang.String?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文