2016-06-12 195 views
0

在Android Studio(和IntelliJ afaik)中出現錯誤時,堆棧跟蹤似乎被限制在一定數量的行中。例如:如何查看Android Studio中的整個堆棧跟蹤?

(我已經發布了這樣的解釋和示例下面的完整堆棧跟蹤。)

 **MANY MANY LINES BEFORE THIS** 
    Caused by: java.lang.reflect.InvocationTargetException 
    at java.lang.reflect.Constructor.newInstance(Native Method) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:631) 
     ... 37 

我不知道什麼37實際上是,但我覺得這些編輯器都切斷了全堆棧跟蹤。我這樣說,因爲在我的代碼中,我可以證明空指針異常導致啓動堆棧跟蹤的問題。這次我很幸運找到它,但由於某種原因,它似乎忽略了我的問題的根源。

也許是因爲Android的工作方式,但是當我膨脹自定義視圖時,會出現空指針異常,並且行告訴我錯誤是不是問題的根源;問題出在創建視圖時的構造函數中。

只是重申一遍,我知道這次是什麼問題,但這不是我第一次遇到這個問題。它使調試極具挑戰性。

這是我的完整堆棧跟蹤。

06-12 12:59:31.766 31807-31807/ 
E/AndroidRuntime: FATAL EXCEPTION: main 
                       Process: , PID: 31807 
                       android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown> 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:551) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                  at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5228) 
                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4453) 
                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4363) 
                        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961) 
                        at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1370) 
                        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333) 
                        at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:562) 
                        at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2900) 
                        at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1418) 
                        at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:144) 
                        at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3783) 
                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920) 
                        at android.view.Choreographer.doCallbacks(Choreographer.java:695) 
                        at android.view.Choreographer.doFrame(Choreographer.java:628) 
                        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906) 
                        at android.os.Handler.handleCallback(Handler.java:739) 
                        at android.os.Handler.dispatchMessage(Handler.java:95) 
                        at android.os.Looper.loop(Looper.java:158) 
                        at android.app.ActivityThread.main(ActivityThread.java:7224) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
                       Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown> 
                        at android.view.LayoutInflater.createView(LayoutInflater.java:657) 
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776) 
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:429)  

                        at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5228)  
                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4453)  
                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4363)  
                        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961)  
                        at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1370)  
                        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333)  
                        at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:562)  
                        at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2900)  
                        at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1418)  
                        at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:144)  
                        at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3783)  
                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)  
                        at android.view.Choreographer.doCallbacks(Choreographer.java:695)  
                        at android.view.Choreographer.doFrame(Choreographer.java:628)  
                        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)  
                        at android.os.Handler.handleCallback(Handler.java:739)  
                        at android.os.Handler.dispatchMessage(Handler.java:95)  
                        at android.os.Looper.loop(Looper.java:158)  
                        at android.app.ActivityThread.main(ActivityThread.java:7224)  
                        at java.lang.reflect.Method.invoke(Native Method)  
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)  
                       Caused by: java.lang.reflect.InvocationTargetException 
                        at java.lang.reflect.Constructor.newInstance(Native Method) 
                        at android.view.LayoutInflater.createView(LayoutInflater.java:631) 
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)  
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)  
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:498)  
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:429)  
                                            at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5228)  
                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4453)  
                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4363)  
                        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961)  
                        at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1370)  
                        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333)  
                        at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:562)  
                        at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2900)  
                        at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1418)  
                        at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:144)  
                        at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3783)  
                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)  
                        at android.view.Choreographer.doCallbacks(Choreographer.java:695)  
                        at android.view.Choreographer.doFrame(Choreographer.java:628)  
                        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)  
                        at android.os.Handler.handleCallback(Handler.java:739)  
                        at android.os.Handler.dispatchMessage(Handler.java:95)  
                        at android.os.Looper.loop(Looper.java:158)  
                        at android.app.ActivityThread.main(ActivityThread.java:7224)  
                        at java.lang.reflect.Method.invoke(Native Method)  
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)  
                       Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class 
                 at android.view.LayoutInflater.inflate(LayoutInflater.java:551) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                        at com.subliroid.subliroidlib.customviews.InfoHeaderCard.init(InfoHeaderCard.java:47) 
                        at com.subliroid.subliroidlib.customviews.InfoHeaderCard.<init>(InfoHeaderCard.java:23) 
                        at java.lang.reflect.Constructor.newInstance(Native Method)  
                        at android.view.LayoutInflater.createView(LayoutInflater.java:631)  
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)  
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)  
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:498)  
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:429)  
                    at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5228)  
                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4453)  
                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4363)  
                        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961)  
                        at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1370)  
                        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333)  
                        at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:562)  
                        at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2900)  
                        at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1418)  
                        at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:144)  
                        at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3783)  
                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)  
                        at android.view.Choreographer.doCallbacks(Choreographer.java:695)  
                        at android.view.Choreographer.doFrame(Choreographer.java:628)  
                        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)  
                        at android.os.Handler.handleCallback(Handler.java:739)  
                        at android.os.Handler.dispatchMessage(Handler.java:95)  
                        at android.os.Looper.loop(Looper.java:158)  
                        at android.app.ActivityThread.main(ActivityThread.java:7224)  
                        at java.lang.reflect.Method.invoke(Native Method)  
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)  
                       Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class 
                   at android.view.LayoutInflater.createView(LayoutInflater.java:657) 
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776) 
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:429)  
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:380)  
                        at com.subliroid.subliroidlib.customviews.InfoHeaderCard.init(InfoHeaderCard.java:47)  
                        at com.subliroid.subliroidlib.customviews.InfoHeaderCard.<init>(InfoHeaderCard.java:23)  
                        at java.lang.reflect.Constructor.newInstance(Native Method)  
                        at android.view.LayoutInflater.createView(LayoutInflater.java:631)  
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)  
                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)  
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:498)  
                        at android.view.LayoutInflater.inflate(LayoutInflater.java:429)   
                        at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5228)  
                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4453)  
                        at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4363)  
                        at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961)  
                        at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1370)  
                        at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333)  
                        at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:562)  
                        at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2900)  
                        at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1418)  
                        at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:144)  
                        at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3783)  
                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)  
                        at android.view.Choreographer.doCallbacks(Choreographer.java:695)  
                        at android.view.Choreographer.doFrame(Choreographer.java:628)  
                        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)  
                        at android.os.Handler.handleCallback(Handler.java:739)  
                        at android.os.Handler.dispatchMessage(Handler.java:95)  
                        at android.os.Looper.loop(Looper.java:158)  
                        at android.app.ActivityThread.main(ActivityThread.java:7224)  
                        at java.lang.reflect.Method.invoke(Native Method)  
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)  
                       Caused by: java.lang.reflect.InvocationTargetException 
                        at java.lang.reflect.Constructor.newInstance(Native Method) 
                        at android.view.LayoutInflater.createView(LayoutInflater.java:631) 
                        ... 37 

對不起,壓痕,但複製和粘貼不健全從編輯器來是不完美的,我想省略了幾行,因爲我非常珍視我的工作:)。我剪切的所有行在行後都有不同的縮進,並且刪除的行都引用同一個類。

回答

0

您可以使用ACRA查看完整的堆棧跟蹤