2017-06-12 47 views
-3

我開發了一個帶有firebase的android應用程序,它工作得很好。我決定用websocket而不是Firebase重用我的代碼。藉助一些幫助,我正在開發它,並且它進展得非常好。但是我遇到了一個組件的問題。Android應用程序崩潰沒有造成

在一個活動中出現問題我嘗試打開一個包含android.r.layout.simple_list_item_multiple_choice的列表視圖的對話框,此時應用程序崩潰了......錯誤顯示爲咆哮。

我調試加載對話框中的信息,並顯示沒有錯誤的代碼...我找不到空對象或'造成',通常它有助於找到哪裏可以是錯誤...

06-12 00:59:56.718 2289-2289/wazodevs.com.coletask E/AndroidRuntime: FATAL EXCEPTION: main 
     Process: wazodevs.com.coletask, PID: 2289 
     java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 
      at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java) 
      at android.widget.ArrayAdapter.getView(ArrayAdapter.java) 
      at android.widget.AbsListView.obtainView(AbsListView.java) 
      at android.widget.ListView.makeAndAddView(ListView.java) 
      at android.widget.ListView.fillDown(ListView.java) 
      at android.widget.ListView.fillFromTop(ListView.java) 
      at android.widget.ListView.layoutChildren(ListView.java) 
      at android.widget.AbsListView.onLayout(AbsListView.java) 
      at android.view.View.layout(View.java) 
      at android.view.ViewGroup.layout(ViewGroup.java) 
      at android.widget.LinearLayout.setChildFrame(LinearLayout.java) 
      at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java) 
      at android.widget.LinearLayout.onLayout(LinearLayout.java) 
      at android.view.View.layout(View.java) 
      at android.view.ViewGroup.layout(ViewGroup.java) 
      at android.widget.LinearLayout.setChildFrame(LinearLayout.java) 
      at android.widget.LinearLayout.layoutVertical(LinearLayout.java) 
      at android.widget.LinearLayout.onLayout(LinearLayout.java) 
      at android.view.View.layout(View.java) 
      at android.view.ViewGroup.layout(ViewGroup.java) 
      at android.widget.RelativeLayout.onLayout(RelativeLayout.java) 
      at android.view.View.layout(View.java) 
      at android.view.ViewGroup.layout(ViewGroup.java) 
      at android.widget.FrameLayout.layoutChildren(FrameLayout.java) 
      at android.widget.FrameLayout.onLayout(FrameLayout.java) 
      at android.view.View.layout(View.java) 
      at android.view.ViewGroup.layout(ViewGroup.java) 
      at android.widget.FrameLayout.layoutChildren(FrameLayout.java) 
      at android.widget.FrameLayout.onLayout(FrameLayout.java) 
      at android.view.View.layout(View.java) 
      at android.view.ViewGroup.layout(ViewGroup.java) 
      at android.widget.LinearLayout.setChildFrame(LinearLayout.java) 
      at android.widget.LinearLayout.layoutVertical(LinearLayout.java) 
      at android.widget.LinearLayout.onLayout(LinearLayout.java) 
      at android.view.View.layout(View.java) 
      at android.view.ViewGroup.layout(ViewGroup.java) 
      at android.widget.FrameLayout.layoutChildren(FrameLayout.java) 
      at android.widget.FrameLayout.onLayout(FrameLayout.java) 
      at android.view.View.layout(View.java) 
      at android.view.ViewGroup.layout(ViewGroup.java) 
      at android.view.ViewRootImpl.performLayout(ViewRootImpl.java) 
      at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java) 
      at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java) 
      at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java) 
      at android.view.Choreographer$CallbackRecord.run(Choreographer.java) 
      at android.view.Choreographer.doCallbacks(Choreographer.java) 
      at android.view.Choreographer.doFrame(Choreographer.java) 
      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java) 
      at android.os.Handler.handleCallback(Handler.java) 
      at android.os.Handler.dispatchMessage(Handler.java) 
      at android.os.Looper.loop(Looper.java) 
      at android.app.ActivityThread.main(ActivityThread.java) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:372) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) 
06-12 00:59:57.008 356-1014/? E/BandwidthController: No such appUid 10117 to remove 

Thx 4 all!

+0

在List中,你在ArrayAdapter中傳遞的任何項目都是null,所以爲什麼它獲得'java.lang.String java.lang.Object.toString()'的空對象引用。請檢查您的清單項目。 –

回答

0

答案是可愛的小傻瓜....問題是,我不得不創建一個加載arrayadapter的字符串列表,並且aImages有8個元素,但是ObtainImgs過濾器並且填充8箇中的3個......但是在檢查器上沒有空...但是當你嘗試繼續...崩潰時。 .... Thx傢伙!

String [] listArray = new String [aImages.length]; listArray = obtainImgs(listArray);

0

我調試加載對話框並顯示在信息不 錯誤代碼......我無法找到空對象或「所造成的」,通常 它有助於找到在哪裏可以是錯誤...

你的數據集包含空值。在內部,ArrayAdapter做以下檢查:

final T item = getItem(position); 
if (item instanceof CharSequence) { 
    text.setText((CharSequence) item); 
} else { 
    text.setText(item.toString()); 
} 

,這是對createViewFromResource唯一的地方,toString被稱爲