Android Wear 应用程序因 FATAL EXCEPTION 崩溃:IntentService[CalendarQueryService]

Posted

技术标签:

【中文标题】Android Wear 应用程序因 FATAL EXCEPTION 崩溃:IntentService[CalendarQueryService]【英文标题】:Android Wear app crashing with FATAL EXCEPTION: IntentService[CalendarQueryService] 【发布时间】:2014-09-06 19:11:33 【问题描述】:

我一直在寻找遇到同样问题的其他人,但似乎找不到任何帖子。

无论如何,我一直在 Nexus 5 上使用 LG G 手表,但几天后,android Wear 应用程序不断崩溃,即我不断收到“Android Wear 已意外停止”对话框。它到了我必须卸载Wear应用程序的地步,因此佩戴G手表毫无意义!立即重新安装应用程序会产生相同的结果。几天后我重新安装了该应用程序(并看到更新已被推送),它很好,但几天后:同样的事情发生了。

logcat 输出显示:

E/DatabaseUtils(8642): 写入异常包裹 E/DatabaseUtils( 8642): java.lang.IllegalArgumentException: 索引 1 处的绑定值 为空 E/DatabaseUtils(8642):在 android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:164) E/DatabaseUtils(8642):在 android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200) E/DatabaseUtils(8642):在 android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47) E/DatabaseUtils(8642):在 android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314) E/DatabaseUtils(8642):在 android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:400) E/DatabaseUtils(8642):在 com.android.providers.contacts.ContactsProvider2.query(ContactsProvider2.java:6440) E/DatabaseUtils(8642):在 com.android.providers.contacts.ContactsProvider2.queryLocal(ContactsProvider2.java:6388) E/DatabaseUtils(8642):在 com.android.providers.contacts.ContactsProvider2.query(ContactsProvider2.java:4996) E/DatabaseUtils(8642):在 android.content.ContentProvider$Transport.query(ContentProvider.java:200) E/DatabaseUtils(8642):在 android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112) E/DatabaseUtils(8642):在 android.os.Binder.execTransact(Binder.java:404) E/AndroidRuntime(11842):致命异常: IntentService[CalendarQueryService] E/AndroidRuntime(11842):进程: com.google.android.wearable.app,PID:11842 E/AndroidRuntime(11842): java.lang.IllegalArgumentException:索引 1 处的绑定值为 null E/AndroidRuntime(11842):在 android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167) E/AndroidRuntime(11842):在 android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137) E/AndroidRuntime(11842):在 android.content.ContentProviderProxy.query(ContentProviderNative.java:413) E/AndroidRuntime(11842):在 android.content.ContentResolver.query(ContentResolver.java:461) E/AndroidRuntime(11842):在 android.content.ContentResolver.query(ContentResolver.java:404) E/AndroidRuntime(11842):在 com.google.android.clockwork.contact.ContactInfoUtil.queryContactInfoByEmail(ContactInfoUtil.java:49) E/AndroidRuntime(11842):在 com.google.android.clockwork.calendar.CalendarUtils.queryContactsForAttendeesAndOwnerAccounts(CalendarUtils.java:281) E/AndroidRuntime(11842):在 com.google.android.clockwork.calendar.CalendarUtils.queryCalendarEventInstances(CalendarUtils.java:202) E/AndroidRuntime(11842):在 com.google.android.clockwork.calendar.CalendarQueryService.onHandleIntent(CalendarQueryService.java:99) E/AndroidRuntime(11842):在 android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) E/AndroidRuntime(11842):在 android.os.Handler.dispatchMessage(Handler.java:102) E/AndroidRuntime(11842): 在 android.os.Looper.loop(Looper.java:136) E/AndroidRuntime(11842):在 android.os.HandlerThread.run(HandlerThread.java:61)

作为真正的 Android Wear 应用,我不确定我能做些什么来解决这个问题。请问有什么建议吗?

谢谢。

【问题讨论】:

我注意到很多人因为设备上的交换帐户而拥有这些。不确定问题出在哪里,但删除交易所帐户可以阻止此崩溃。 【参考方案1】:

两三周前,我遇到过类似的情况,Android Wear 应用程序每天都会崩溃多次,并显示IllegalArgumentException

我尝试多次删除 Android Wear 应用、重置手表 (Moto 360)、重新配对、从手表中删除大量应用,诸如此类,但没有任何帮助。

最后,我擦除了手机的缓存分区(Nexus 4),这似乎解决了问题

在过去的两三周内,Android Wear 不再崩溃 (#FingersCrossed)

【讨论】:

【参考方案2】:

尝试清理日历存储应用(强制停止 + 清除数据)。这解决了我在 Nexus 5 (Lollipop 5.0) 上的问题

【讨论】:

以上是关于Android Wear 应用程序因 FATAL EXCEPTION 崩溃:IntentService[CalendarQueryService]的主要内容,如果未能解决你的问题,请参考以下文章

借助 Compose for Wear OS,Todoist 安装增长率提高了 50%

Xamarin.Forms - 创建 Android Wear 应用程序时出现问题

与 Android Wear 的 React-Native 通信

Android Wear之android穿戴式设备应用开发平台

我可以将自定义对象发送到 Android Wear 吗?

从真实设备卸载 Android Wear 应用程序