现在,在尝试接收SMS / MMS的某个联系人列表时,我在查询中获得了FC.
这是一些代码:
Uri uri = Uri.parse("content://mms-sms/conversations/"+String.valueOf(thread_ID));ContentResolver cr = context.getContentResolver();Cursor c= cr.query(uri,null,null); //crashing here
logcat的:
05-22 15:24:24.273: E/AndroIDRuntime(32087): FATAL EXCEPTION: main05-22 15:24:24.273: E/AndroIDRuntime(32087): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.uiu.messaging/com.uiu.messaging.ContactMessageChain}: java.lang.NullPointerException05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:1816)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.app.ActivityThread.access00(ActivityThread.java:132)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.os.Handler.dispatchMessage(Handler.java:99)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.os.Looper.loop(Looper.java:143)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.app.ActivityThread.main(ActivityThread.java:4196)05-22 15:24:24.273: E/AndroIDRuntime(32087): at java.lang.reflect.Method.invokeNative(Native Method)05-22 15:24:24.273: E/AndroIDRuntime(32087): at java.lang.reflect.Method.invoke(Method.java:507)05-22 15:24:24.273: E/AndroIDRuntime(32087): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)05-22 15:24:24.273: E/AndroIDRuntime(32087): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:597)05-22 15:24:24.273: E/AndroIDRuntime(32087): at dalvik.system.NativeStart.main(Native Method)05-22 15:24:24.273: E/AndroIDRuntime(32087): Caused by: java.lang.NullPointerException05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.os.Parcel.readException(Parcel.java:1328)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.content.ContentProvIDerProxy.bulkqueryInternal(ContentProvIDerNative.java:372)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.content.ContentProvIDerProxy.query(ContentProvIDerNative.java:408)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.content.ContentResolver.query(ContentResolver.java:264)05-22 15:24:24.273: E/AndroIDRuntime(32087): at com.uiu.messaging.Data.getContactChain(Data.java:319)05-22 15:24:24.273: E/AndroIDRuntime(32087): at com.uiu.messaging.ContactMessageChain.onCreate(ContactMessageChain.java:138)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)05-22 15:24:24.273: E/AndroIDRuntime(32087): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:1780)05-22 15:24:24.273: E/AndroIDRuntime(32087): ... 11 more
所有权限都被考虑在内.
任何帮助将不胜感激.
编辑:
遵循Mike的建议后,我在logcat中收到以下错误:
05-22 16:31:46.178: E/AndroIDRuntime(1892): FATAL EXCEPTION: main05-22 16:31:46.178: E/AndroIDRuntime(1892): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.uiu.messaging/com.uiu.messaging.ContactMessageChain}: androID.database.sqlite.sqliteException: near "*": Syntax error:,while compiling: SELECT * FROM (SELECT disTINCT date * 1 AS normalized_date,NulL AS * FROM sms WHERE (htc_category= 0 AND thread_ID = 25 AND (type != 3 AND type > 0)) UNION SELECT disTINCT date * 1000 AS normalized_date,NulL AS * FROM pdu left JOIN pending_msgs ON pdu._ID = pending_msgs.msg_ID WHERE (htc_category= 0 AND thread_ID = 25 AND msg_Box != 3 AND (msg_Box > 0 AND msg_Box != 3 AND (m_type = 128 OR m_type = 132 OR m_type = 130))) ORDER BY normalized_date ASC)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:1816)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.app.ActivityThread.access00(ActivityThread.java:132)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.os.Handler.dispatchMessage(Handler.java:99)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.os.Looper.loop(Looper.java:143)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.app.ActivityThread.main(ActivityThread.java:4196)05-22 16:31:46.178: E/AndroIDRuntime(1892): at java.lang.reflect.Method.invokeNative(Native Method)05-22 16:31:46.178: E/AndroIDRuntime(1892): at java.lang.reflect.Method.invoke(Method.java:507)05-22 16:31:46.178: E/AndroIDRuntime(1892): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)05-22 16:31:46.178: E/AndroIDRuntime(1892): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:597)05-22 16:31:46.178: E/AndroIDRuntime(1892): at dalvik.system.NativeStart.main(Native Method)05-22 16:31:46.178: E/AndroIDRuntime(1892): Caused by: androID.database.sqlite.sqliteException: near "*": Syntax error:,NulL AS * FROM pdu left JOIN pending_msgs ON pdu._ID = pending_msgs.msg_ID WHERE (htc_category= 0 AND thread_ID = 25 AND msg_Box != 3 AND (msg_Box > 0 AND msg_Box != 3 AND (m_type = 128 OR m_type = 132 OR m_type = 130))) ORDER BY normalized_date ASC)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:158)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.content.ContentProvIDerProxy.bulkqueryInternal(ContentProvIDerNative.java:372)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.content.ContentProvIDerProxy.query(ContentProvIDerNative.java:408)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.content.ContentResolver.query(ContentResolver.java:264)05-22 16:31:46.178: E/AndroIDRuntime(1892): at com.uiu.messaging.Data.getContactChain(Data.java:318)05-22 16:31:46.178: E/AndroIDRuntime(1892): at com.uiu.messaging.ContactMessageChain.onCreate(ContactMessageChain.java:138)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)05-22 16:31:46.178: E/AndroIDRuntime(1892): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:1780)05-22 16:31:46.178: E/AndroIDRuntime(1892): ... 11 more
我不知道SQL语句有什么问题……
解决方法 好的,修好了.诀窍是在投影中输入实际的列名.好像这个BUG毕竟是androID的. 总结以上是内存溢出为你收集整理的android – ContentResolver查询抛出nullpointerException全部内容,希望文章能够帮你解决android – ContentResolver查询抛出nullpointerException所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)