我有一個編譯沒有錯誤的科爾多瓦應用程序。但是,當我將應用程序午餐給我的Android設備時,它在啓動時立即崩潰。當我不知道錯誤是什麼時,我很難調試...Cordova應用程序編譯但運行時崩潰。如何獲得錯誤報告?
問題:有沒有辦法從這次崩潰中獲取錯誤報告?
我通常使用chrome來調試我的應用程序,但只有當應用程序能夠加載並在設備上運行時纔有效。
我有一個編譯沒有錯誤的科爾多瓦應用程序。但是,當我將應用程序午餐給我的Android設備時,它在啓動時立即崩潰。當我不知道錯誤是什麼時,我很難調試...Cordova應用程序編譯但運行時崩潰。如何獲得錯誤報告?
問題:有沒有辦法從這次崩潰中獲取錯誤報告?
我通常使用chrome來調試我的應用程序,但只有當應用程序能夠加載並在設備上運行時纔有效。
您希望瞭解logcat的一些文章...我回答部分投入,因爲它是徵求意見:)
DOCS
太多的信息在Android中的情況下,可以隨時去開發者頁面。
HERE是Android的約logcat的
如果您使用Android Studio,您還可以檢查此LINK頁。
捕捉
基本上,你可以捕捉logcat的使用下面的命令:
adb logcat
有很多的參數,你可以添加命令它可以幫助你過濾顯示你想要的信息...這是個人...我總是使用下面的命令來獲取消息時間戳:
adb logcat -v time
Y您可以將輸出重定向到一個文件並在文本編輯器中進行分析。
分析
如果您的應用程序崩潰,你會得到這樣的:
07-09 08:29:13.474 21144-21144/com.example.khan.abc D/AndroidRuntime: Shutting down VM
07-09 08:29:13.475 21144-21144/com.example.khan.abc E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.khan.abc, PID: 21144
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.onBackPressed()' on a null object reference
at com.example.khan.abc.AudioFragment$1.onClick(AudioFragment.java:125)
at android.view.View.performClick(View.java:4848)
at android.view.View$PerformClick.run(View.java:20262)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5631)
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:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
07-09 08:29:15.195 21144-21144/com.example.khan.abc I/Process: Sending signal. PID: 21144 SIG: 9
日誌的這部分顯示了大量的信息:
07-09 08:29:13.475
重要的是要檢查問題何時發生......您可能會在日誌中發現多個錯誤...你必須確保你正在檢查的正確的信息:)
com.example.khan.abc
這樣,你知道哪些應用程序崩潰(以確保您正在檢查有關日誌的你消息)
java.lang.NullPointerException
一個空指針異常錯誤
Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.onBackPressed()' on a null object reference
您試圖從FragmentActivity
對象調用方法onBackPressed()
。然而,當你這樣做的時候,那個對象是null
。
堆棧跟蹤:堆棧跟蹤顯示您的方法調用順序...有時,錯誤發生在調用方法(而不是調用方法)中。
在com.example.khan.abc.AudioFragment $ 1.onClick(AudioFragment.java:125)
錯誤發生在文件com.example.khan.abc.AudioFragment.java
,內部onClick()
方法在行:125
(堆棧跟蹤示出了行錯誤發生)
它被稱爲:
at android.view.View.performClick(View.java:4848)
這是所謂的:
at android.view.View$PerformClick.run(View.java:20262)
這是所謂的:
at android.os.Handler.handleCallback(Handler.java:815)
等....
概述
這只是一個概述......不是所有的日誌都是簡單等。 。它只是分享想法,併爲您提供入門級的信息...
我希望我可以幫你... Regards
搜索如何通過LOGCAT收集和檢查「強制關閉」 – W0rmH0le
@Guilherme P有沒有特定的文章,你可以推薦? – Tim
看到這個SO回答:http://stackoverflow.com/a/32115428/1814840有關從logcat獲取錯誤的說明 –