碰撞发生时运行冰淇淋三明治的应用程序 [英] Crash Occur while running app in ICE CREAM SANDWICH

查看:171
本文介绍了碰撞发生时运行冰淇淋三明治的应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

其实我已经创建了存储的事件在设备日历中的应用程序,它工作正常,并存储的事件在设备日历。但是,当我尝试做同样的事情在冰淇淋三明治崩溃的应用程序,为什么发生这种情况。谁能帮我解决了这一点。在$ C $词都用来保存下图所示的装置日历事件和日志猫崩溃也有。

code保存事件设备日历

 公共布尔setAlertOnDevice(上下文C)
{
资源RES = c.getResources();

乌里EVENTS_URI = Uri.parse(内容://com.android.calendar/+事件);

乌里REMINDERS_URI = Uri.parse(内容://com.android.calendar/+提醒);

    ContentResolver的CR = c.getContentResolver();

日期dtStartDate = getStartDate();

日历CAL = Calendar.getInstance();

cal.setTime(dtStartDate);
cal.add(Calendar.DATE,m_iStart);

cal.set(Calendar.HOUR_OF_DAY,8);
cal.set(Calendar.MINUTE,DEFAULT_TIME_OF_DATE);
cal.set(Calendar.SECOND,DEFAULT_TIME_OF_DATE);
cal.set(Calendar.MILLISECOND,DEFAULT_TIME_OF_DATE);

字符串str = m_reminderText + res.getString(R.string.alert_start);
m_strDescription = res.getString(R.string.alert_start_msg);

ContentValues​​值=新ContentValues​​();
values​​.put(CALENDAR_ID,1);
values​​.put(标题,STR);
values​​.put(说明,m_strDescription);
values​​.put(DTSTART,cal.getTimeInMillis());
values​​.put(DTEND,cal.getTimeInMillis());
values​​.put(hasAlarm,1);
乌里事件= cr.insert(EVENTS_URI,价值观);

m_calendarEvents [m_calendarEventCount] =事件;
m_calendarEventCount = m_calendarEventCount + 1;

值=新ContentValues​​();
values​​.put(事项标识,的Long.parseLong(event.getLastPathSegment()));
values​​.put(方法,1);
values​​.put(分,10);
cr.insert(REMINDERS_URI,价值观);
}
 

登录猫的报道

  03-02 18:28:35.836:E / AndroidRuntime(1362):致命异常:主要
03-02 18:28:35.836:E / AndroidRuntime(1362):java.lang.RuntimeException的:无法暂停活动{in.plackal.lovecyclesfree / in.plackal.lovecyclesfree.ActivityManager}:java.lang.IllegalArgumentException:如果事件值必须包括一个eventTimezone
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.app.ActivityThread.performPauseActivity(ActivityThread.java:2706)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.app.ActivityThread.performPauseActivity(ActivityThread.java:2662)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2640)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.app.ActivityThread.access $ 800(ActivityThread.java:123)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1158)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.os.Handler.dispatchMessage(Handler.java:99)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.os.Looper.loop(Looper.java:137)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.app.ActivityThread.main(ActivityThread.java:4424)
03-02 18:28:35.836:E / AndroidRuntime(1362):在java.lang.reflect.Method.invokeNative(本机方法)
03-02 18:28:35.836:E / AndroidRuntime(1362):在java.lang.reflect.Method.invoke(Method.java:511)
03-02 18:28:35.836:E / AndroidRuntime(1362):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)
03-02 18:28:35.836:E / AndroidRuntime(1362):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-02 18:28:35.836:E / AndroidRuntime(1362):在dalvik.system.NativeStart.main(本机方法)
03-02 18:28:35.836:E / AndroidRuntime(1362):java.lang.IllegalArgumentException异常::由事件引起的值必须包括eventTimezone
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.content.ContentProviderProxy.insert(ContentProviderNative.java:415)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.content.ContentResolver.insert(ContentResolver.java:730)
03-02 18:28:35.836:E / AndroidRuntime(1362):在in.plackal.lovecyclesfree.CycleManager.setAlertOnDevice(CycleManager.java:1083)
03-02 18:28:35.836:E / AndroidRuntime(1362):在in.plackal.lovecyclesfree.ActivityManager.onPause(ActivityManager.java:83)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.app.Activity.performPause(Activity.java:4563)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1195)
03-02 18:28:35.836:E / AndroidRuntime(1362):在android.app.ActivityThread.performPauseActivity(ActivityThread.java:2693)
03-02 18:28:35.836:E / AndroidRuntime(1362):12 ...更多
 

解决方案

我也遇到这个问题,现在我解决这个问题。要做工精细上述冰淇淋三明治的code,你需要设置eventTimezone的值。那么,就需要添加code像

  ContentValues​​值=新ContentValues​​();
values​​.put(CALENDAR_ID,1);
values​​.put(标题,STR);
values​​.put(说明,m_strDescription);
values​​.put(DTSTART,cal.getTimeInMillis());
values​​.put(DTEND,cal.getTimeInMillis());
values​​.put(hasAlarm,1);

values​​.put(Events.EVENT_TIMEZONE,TimeZone.getDefault()的getID()); //添加此行

乌里事件= cr.insert(EVENTS_URI,价值观);
 

Actually i have created an app which stored event in device calendar, and its works fine and stored event in the device calendar. But when i try to do the same thing in ICE CREAM SANDWICH it crashes the app why this happen. Can anyone help me to solve this out. The code i have used to save events in device calendar shown below, and the log cat for the crash is also there.

Code for saving events to device calendar

public boolean setAlertOnDevice(Context c)
{                   
Resources res = c.getResources();

Uri EVENTS_URI = Uri.parse("content://com.android.calendar/" + "events");

Uri REMINDERS_URI = Uri.parse("content://com.android.calendar/" + "reminders");

    ContentResolver cr = c.getContentResolver();

Date dtStartDate = getStartDate();  

Calendar cal = Calendar.getInstance();

cal.setTime(dtStartDate);
cal.add(Calendar.DATE, m_iStart);

cal.set(Calendar.HOUR_OF_DAY, 8);  
cal.set(Calendar.MINUTE, DEFAULT_TIME_OF_DATE);     
cal.set(Calendar.SECOND, DEFAULT_TIME_OF_DATE); 
cal.set(Calendar.MILLISECOND, DEFAULT_TIME_OF_DATE);

String str = m_reminderText + res.getString(R.string.alert_start);                                          
m_strDescription = res.getString(R.string.alert_start_msg);

ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", m_strDescription);                    
values.put("dtstart", cal.getTimeInMillis()); 
values.put("dtend", cal.getTimeInMillis()); 
values.put("hasAlarm", 1);
Uri event = cr.insert(EVENTS_URI, values);

m_calendarEvents[m_calendarEventCount] = event;
m_calendarEventCount = m_calendarEventCount + 1;

values = new ContentValues();
values.put("event_id", Long.parseLong(event.getLastPathSegment()));
values.put("method", 1);
values.put("minutes", 10);
cr.insert(REMINDERS_URI, values);
}

Log cat reports

03-02 18:28:35.836: E/AndroidRuntime(1362): FATAL EXCEPTION: main
03-02 18:28:35.836: E/AndroidRuntime(1362): java.lang.RuntimeException: Unable to pause          activity {in.plackal.lovecyclesfree/in.plackal.lovecyclesfree.ActivityManager}: java.lang.IllegalArgumentException: Event values must include an eventTimezone
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2706)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2662)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2640)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.ActivityThread.access$800(ActivityThread.java:123)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at  android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.os.Looper.loop(Looper.java:137)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.ActivityThread.main(ActivityThread.java:4424)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at java.lang.reflect.Method.invokeNative(Native Method)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at java.lang.reflect.Method.invoke(Method.java:511)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at dalvik.system.NativeStart.main(Native Method)
03-02 18:28:35.836: E/AndroidRuntime(1362): Caused by: java.lang.IllegalArgumentException: Event values must include an eventTimezone
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.content.ContentProviderProxy.insert(ContentProviderNative.java:415)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.content.ContentResolver.insert(ContentResolver.java:730)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at in.plackal.lovecyclesfree.CycleManager.setAlertOnDevice(CycleManager.java:1083)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at in.plackal.lovecyclesfree.ActivityManager.onPause(ActivityManager.java:83)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.Activity.performPause(Activity.java:4563)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1195)
03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2693)
03-02 18:28:35.836: E/AndroidRuntime(1362):     ... 12 more

解决方案

I also meet this problem and now I solve it. The code you want to work fine above ICE CREAM SANDWICH ,you need to set the values of eventTimezone. Well , just need to add the code like

ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", m_strDescription);                    
values.put("dtstart", cal.getTimeInMillis()); 
values.put("dtend", cal.getTimeInMillis()); 
values.put("hasAlarm", 1);

values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());  //add this row

Uri event = cr.insert(EVENTS_URI, values);

这篇关于碰撞发生时运行冰淇淋三明治的应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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