Thanks Chris. It is my mistake. There misses a 'break' in switch in function of provide code. I am so sorry.
2012/12/12 Chris Mawata <[email protected]> > Are you sure the uri coming into the method is not null? > > On Tuesday, December 11, 2012 10:19:13 PM UTC-5, Hilda Chen wrote: > >> public int getCount(Uri uri){ >> Cursor c=null; >> int size=0; >> if(uri.equals(**DatabaseContants.CONTENT_URI_**SETTING)){ >> c=mContentResolver.query(uri, >> DatabaseContants.COLUMNS_**SETTING,null, >> null,null); >> } >> else if(uri.equals(**DatabaseContants.CONTENT_URI_** >> FAVORITEPOI)){ >> Log.v(TAG,"ContentResolver is "+mContentResolver); >> c=mContentResolver.query(uri, >> DatabaseContants.COLUMNS_**FAVORITEPOI,null, >> null,DatabaseContants.PLACEID_**FAVORITE+" DESC"); >> Log.v(TAG,"Cursor c is "+c); >> } >> if(c!=null&&c.getCount()>0)**size=c.getCount(); >> c.close(); >> return size; >> } >> the error appears in this function. >> >> 在 2012年12月12日星期三UTC+**8上午11时13分55秒,Hilda Chen写道: >>> >>> Hi All: >>> I create a datatbase with provider and get the data by content >>> resolver. when call ContentResolver.insert is ok, but >>> ContentResolver.query fail. >>> c=mContentResolver.query(uri, >>> DatabaseContants.COLUMNS_**FAVORITEPOI,null, >>> null,DatabaseContants.PLACEID_**FAVORITE+" DESC"); >>> it return null, and the ContentResolver is not null; >>> the log is >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): FATAL EXCEPTION: main >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): java.lang.RuntimeException: >>> Unable to start activity ComponentInfo{com.example.** >>> providerdatabase/com.example.**providerdatabase.**PrivoterDatabaseActivity}: >>> java.lang.NullPointerException >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> android.app.ActivityThread.**performLaunchActivity(** >>> ActivityThread.java:2082) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> android.app.ActivityThread.**handleLaunchActivity(** >>> ActivityThread.java:2107) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> android.app.ActivityThread.**access$600(ActivityThread.**java:139) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> android.app.ActivityThread$H.**handleMessage(ActivityThread.**java:1207) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at android.os.Handler.* >>> *dispatchMessage(Handler.java:**99) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> android.os.Looper.loop(Looper.**java:137) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> android.app.ActivityThread.**main(ActivityThread.java:4812) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> java.lang.reflect.Method.**invokeNative(Native Method) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> java.lang.reflect.Method.**invoke(Method.java:511) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> com.android.internal.os.**ZygoteInit$**MethodAndArgsCaller.run(** >>> ZygoteInit.java:789) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> com.android.internal.os.**ZygoteInit.main(ZygoteInit.**java:556) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> dalvik.system.NativeStart.**main(Native Method) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): Caused by: >>> java.lang.NullPointerException >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> com.example.providerdatabase.**DatabaseController.getCount(** >>> DatabaseController.java:47) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> com.example.providerdatabase.**PrivoterDatabaseActivity.**onCreate(** >>> PrivoterDatabaseActivity.java:**62) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at android.app.Activity. >>> **performCreate(Activity.java:**5008) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> android.app.Instrumentation.**callActivityOnCreate(** >>> Instrumentation.java:1079) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): at >>> android.app.ActivityThread.**performLaunchActivity(** >>> ActivityThread.java:2046) >>> 06-02 03:31:34.235: E/AndroidRuntime(23134): ... 11 more >>> >>> can you help me? >>> Thanks! >>> Hilda >>> >> -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Hilda Thanks and Regards! -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

