2011-06-21 39 views
0

我有一個ListView我從SQLite數據庫填充。我的HTC Hero 2.1在我的ListView中有350行,一切正常。我將它安裝在Samsung Galaxy S 2.2上,並且我的ListView中有270行,每當我到達滾動列表的ListView的底部時,我的應用程序崩潰。滾動ListView導致應用程序崩潰

這是日誌文件:

06-17 14:29:33.796 W/dalvikvm(3565): threadid=1: thread exiting with uncaught exception (group=0x4001d7d0) 
06-17 14:29:33.816 E/AndroidRuntime(3565): FATAL EXCEPTION: main 
06-17 14:29:33.816 E/AndroidRuntime(3565): java.lang.NullPointerException 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at aec.phonebook.ListContacts$ItemAdapter.getView(ListContacts.java:539) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.widget.AbsListView.obtainView(AbsListView.java:1410) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.widget.ListView.makeAndAddView(ListView.java:1802) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.widget.ListView.fillDown(ListView.java:727) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.widget.ListView.fillGap(ListView.java:698) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.widget.AbsListView.trackMotionScroll(AbsListView.java:3367) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.widget.AbsListView.onTouchEvent(AbsListView.java:2251) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.widget.ListView.onTouchEvent(ListView.java:3605) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.view.View.dispatchTouchEvent(View.java:3819) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:897) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1723) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1129) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.app.Activity.dispatchTouchEvent(Activity.java:2086) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1707) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1810) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.os.Looper.loop(Looper.java:123) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at java.lang.reflect.Method.invoke(Method.java:521) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
06-17 14:29:33.816 E/AndroidRuntime(3565):  at dalvik.system.NativeStart.main(Native Method) 
06-17 14:29:33.827 W/ActivityManager(2465): Force finishing activity aec.phonebook/.ListContacts 
06-17 14:29:33.831 I/  (2465): dumpmesg > "/data/log/dumpstate_app_error.log" 
06-17 14:29:33.855 I/dumpstate(3830): begin 
06-17 14:29:33.890 V/InputDevice(2465): ID[0]=0(0) Up(1=>0) 
06-17 14:29:36.890 W/PowerManagerService(2465): Timer 0x7->0x3|0x0 
06-17 14:29:36.890 I/PowerManagerService(2465): Ulight 7->3|0 
06-17 14:29:36.929 D/VoldCmdListener(2348): asec list 
06-17 14:29:36.937 D/VoldCmdListener(2348): CommandListener::AsecCmd::runCommand -> com.fridgecat.android.atiltlite-1 
06-17 14:29:38.222 I/dumpstate(3830): done 
06-17 14:29:38.370 W/WindowManager(2465): No window to dispatch pointer action 1 
06-17 14:29:38.374 W/ActivityManager(2465): Activity pause timeout for HistoryRecord{4806e860 aec.phonebook/.ListContacts} 

編輯:

下面是代碼:

@Override 
public View getView(int position, View convertView, ViewGroup parent){ 

    View v = convertView; 
    if (v == null) { 
     LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v = vi.inflate(R.layout.row, null); 
    } 

    Item j = items.get(position); 

    if (j != null) { 
     TextView tvn = (TextView)v.findViewById(R.id.textViewName); 
     TextView tvnum = (TextView)v.findViewById(R.id.textViewNumber); 
     TextView tvid = (TextView)v.findViewById(R.id.textViewId); 
     TextView tvoper = (TextView)v.findViewById(R.id.textViewOperator); 

     if (tvn != null) { 
      tvn.setText(j.getname());       
     } 
     if(tvnum != null){ 
      tvnum.setText(j.getnumber()); 
     } 
     if (tvid != null) { 
      tvid.setText(j.getid());      
     } 
     if(tvoper != null){ 
      tvoper.setText(j.getoperator()); 

      if(j.getstatus().equals("0")){ 
       tvoper.setTextColor(Color.WHITE); 
      } 
      if(j.getstatus().equals("1")){ 
       tvoper.setTextColor(Color.GREEN); 
      } 
      if(j.getstatus().equals("2")){ 
       tvoper.setTextColor(Color.RED); 
      } 
     } 
    } 
} 
+0

必須有崩潰日誌。仔細檢查你的日誌。 – inazaruk

+0

這一行:'at aec.phonebook.ListContacts $ ItemAdapter.getView(ListContacts.java:539)'可以爲null?調試你的應用程序並修復它,你會找到你的答案。 – Pedantic

+0

@Chris不知道爲什麼在HTC英雄2.1工作正常?什麼會導致問題?我完全困惑 – user742362

回答

1

可能是在代碼中可能出現的錯誤是 「字符串數組大小」 說你已經定義了。

例如:您創建的StringArray包含270個元素,但您定義的大小可能超過270個。 會在剩餘的未初始化數組中創建空值的問題。

所以一定要確保ARRAYSIZE等於你LISTSIZE ..

希望它可以幫助