Tôi đang phát triển ứng dụng SMS và cần liệt kê cuộc trò chuyện SMS. Tôi đã gặp sự cố khi cố gắng truy cập vào nhà cung cấp nội dung bằng cách sử dụng uri content://mms-sms/conversations/
. Đó là chạy tốt trên Android 2.3 nhưng khi chạy ở Android 4.0.3 Samsung galaxy tab 2 nó trả về lỗi:nội dung: // mms-sms/conversation/return NullPointerException tại Android ICS Samsung
10-17 09:04:51.035: E/AndroidRuntime(22600): FATAL EXCEPTION: main
10-17 09:04:51.035: E/AndroidRuntime(22600):
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.yooi/com.yooi.ui.MainActivity}:
android.view.InflateException: Binary XML file line #6: Error
inflating class fragment 10-17 09:04:51.035: E/AndroidRuntime(22600):
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.app.ActivityThread.access$600(ActivityThread.java:128) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.os.Handler.dispatchMessage(Handler.java:99) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
android.os.Looper.loop(Looper.java:137) 10-17 09:04:51.035:
E/AndroidRuntime(22600): at
android.app.ActivityThread.main(ActivityThread.java:4514) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
java.lang.reflect.Method.invokeNative(Native Method) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
java.lang.reflect.Method.invoke(Method.java:511) 10-17 09:04:51.035:
E/AndroidRuntime(22600): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
dalvik.system.NativeStart.main(Native Method) 10-17 09:04:51.035:
E/AndroidRuntime(22600): Caused by: android.view.InflateException:
Binary XML file line #6: Error inflating class fragment 10-17
09:04:51.035: E/AndroidRuntime(22600): at
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
android.view.LayoutInflater.inflate(LayoutInflater.java:489) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
android.view.LayoutInflater.inflate(LayoutInflater.java:396) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
android.view.LayoutInflater.inflate(LayoutInflater.java:352) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:273)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.app.Activity.setContentView(Activity.java:1835) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
com.yooi.ui.MainActivity.onCreate(MainActivity.java:17) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
android.app.Activity.performCreate(Activity.java:4465) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
10-17 09:04:51.035: E/AndroidRuntime(22600): ... 11 more 10-17
09:04:51.035: E/AndroidRuntime(22600): Caused by:
java.lang.NullPointerException 10-17 09:04:51.035:
E/AndroidRuntime(22600): at
android.os.Parcel.readException(Parcel.java:1334) 10-17 09:04:51.035:
E/AndroidRuntime(22600): at
android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:181)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.content.ContentProviderProxy.query(ContentProviderNative.java:358)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.content.ContentResolver.query(ContentResolver.java:311) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
com.yooi.ui.SmsThreadListActivity.getThreadListCursor(SmsThreadListActivity.java:146)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
com.yooi.ui.SmsThreadListActivity.onCreateView(SmsThreadListActivity.java:95)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:806)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1010)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1108)
10-17 09:04:51.035: E/AndroidRuntime(22600): at
android.app.Activity.onCreateView(Activity.java:4243) 10-17
09:04:51.035: E/AndroidRuntime(22600): at
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
10-17 09:04:51.035: E/AndroidRuntime(22600): ... 21 more
Tôi đã dành thời gian tìm kiếm của tôi nó trên google nhưng vẫn không tìm thấy câu trả lời. Bất cứ ai biết xin hãy giúp tôi, tôi bị mắc kẹt cho vấn đề này gây phiền nhiễu :(
Có vẻ như thẻ "Samsung galaxy tab 2' thay đổi đường dẫn URI. Mã của tôi hoạt động tốt trên NexusS đang chạy 4.1.2. Bởi vì nhà cung cấp dịch vụ nhắn tin trực tiếp không phải là sdk công cộng nên bạn phải chịu đựng nó. 'msssms.db' –
Chỉ cần lưu ý: Bạn không bao giờ nên * dựa vào 'nội dung: // sms' hoặc bất kỳ điều gì tương tự như hành vi của họ không được ghi lại và do đó có thể bị thay đổi hoặc bị xóa giữa các thiết bị hoặc phiên bản. – Eric
Cảm ơn Eric, nhưng đây là cách duy nhất để truy cập cơ sở dữ liệu SMS ngay bây giờ, phải không? đường dẫn uri hoạt động tốt khi tôi thêm threadID như: 'content: // mms-sms/conversation/xxx', nhưng nó trở thành con trỏ null khi không có threadID được đề cập – Jevrier