2012年2月16日 星期四

GridView Null Pointer Exception

error log:
 W/dalvikvm( 727): threadid=1: thread exiting with uncaught exception (group=0x2aac47e8)  
 E/AndroidRuntime( 727): FATAL EXCEPTION: main  
 E/AndroidRuntime( 727): java.lang.NullPointerException  
 E/AndroidRuntime( 727):    at android.widget.GridView.setupChild(GridView.java:1246)  
 E/AndroidRuntime( 727):    at android.widget.GridView.makeAndAddView(GridView.java:1222)  
 E/AndroidRuntime( 727):    at android.widget.GridView.makeRow(GridView.java:265)  
 E/AndroidRuntime( 727):    at android.widget.GridView.fillDown(GridView.java:218)  
 E/AndroidRuntime( 727):    at android.widget.GridView.fillSpecific(GridView.java:482)  
 E/AndroidRuntime( 727):    at android.widget.GridView.layoutChildren(GridView.java:1122)  
 E/AndroidRuntime( 727):    at android.widget.AbsListView.onLayout(AbsListView.java:1147)  
 E/AndroidRuntime( 727):    at android.view.View.layout(View.java:7085)  
 E/AndroidRuntime( 727):    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:909)  
 E/AndroidRuntime( 727):    at android.view.View.layout(View.java:7085)  
 E/AndroidRuntime( 727):    at android.widget.AbsoluteLayout.onLayout(AbsoluteLayout.java:120)  
 E/AndroidRuntime( 727):    at android.view.View.layout(View.java:7085)  
 E/AndroidRuntime( 727):    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)  
 E/AndroidRuntime( 727):    at android.view.View.layout(View.java:7085)  
 E/AndroidRuntime( 727):    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)  
 E/AndroidRuntime( 727):    at android.view.View.layout(View.java:7085)  
 E/AndroidRuntime( 727):    at android.widget.FrameLayout.onLayout(FrameLayout.java:333)  
 E/AndroidRuntime( 727):    at android.view.View.layout(View.java:7085)  
 E/AndroidRuntime( 727):    at android.view.ViewRoot.performTraversals(ViewRoot.java:1045)  
 E/AndroidRuntime( 727):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)  
 E/AndroidRuntime( 727):    at android.os.Handler.dispatchMessage(Handler.java:99)  
 E/AndroidRuntime( 727):    at android.os.Looper.loop(Looper.java:123)  
 E/AndroidRuntime( 727):    at android.app.ActivityThread.main(ActivityThread.java:4627)  
 E/AndroidRuntime( 727):    at java.lang.reflect.Method.invokeNative(Native Method)  
 E/AndroidRuntime( 727):    at java.lang.reflect.Method.invoke(Method.java:521)  
 E/AndroidRuntime( 727):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)  
 E/AndroidRuntime( 727):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)  
 E/AndroidRuntime( 727):    at dalvik.system.NativeStart.main(Native Method)  
log有點難看出是哪段程式碼出了問題,只知道GridView出了問題,通常這種問題都是出現在getView的時候回傳null值產生,所以一定要避免漏接了null的View
 if (xxxView = = null)  
  {  
    ...  
 }   
參考網址

沒有留言:

張貼留言