java.lang.IllegalArgumentException异常:坏类:类java.lang.String? [英] java.lang.IllegalArgumentException: Bad class: class java.lang.String?

查看:201
本文介绍了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 为列名。

  • 的<一个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 and DTEND columns contain the start and end time in long format (milliseconds since epoch).

这篇关于java.lang.IllegalArgumentException异常:坏类:类java.lang.String?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆