ขออภัย MyApp หยุดทำงาน ฉันจะแก้ปัญหานี้ได้อย่างไร?
ฉันกำลังพัฒนาแอปพลิเคชันและทุกครั้งที่เรียกใช้ฉันได้รับข้อความ:
ขออภัย MyApp หยุดทำงาน
ฉันจะทำอย่างไรเพื่อแก้ปัญหานี้
เกี่ยวกับคำถามนี้ - เห็นได้ชัดว่าได้รับแรงบันดาลใจจากสแต็กแทร็กคืออะไรและฉันจะใช้มันเพื่อแก้ไขข้อผิดพลาดของแอปพลิเคชันได้อย่างไร มีคำถามมากมายที่ระบุว่าแอปพลิเคชันของพวกเขาขัดข้องโดยไม่มีรายละเอียดเพิ่มเติม คำถามนี้มีจุดมุ่งหมายเพื่อแนะนำนักเขียนโปรแกรม Android มือใหม่ให้ลองแก้ไขปัญหาด้วยตนเองหรือถามคำถามที่ถูกต้อง
คำตอบ
คำตอบนี้อธิบายกระบวนการดึงสแต็กแทร็ก มีการติดตามสแต็กอยู่แล้ว? อ่านข้อมูลเกี่ยวกับสแต็กเทรซใน "สแต็กแทร็กคืออะไรและฉันจะใช้มันเพื่อแก้ไขข้อผิดพลาดแอปพลิเคชันของฉันได้อย่างไร "
ปัญหา
แอปพลิเคชันของคุณหยุดทำงานเนื่องจากมีการRuntimeException
ขว้างปา
ที่พบบ่อยที่สุดคือNullPointerException
.
ต้องแก้ยังไง?
ทุกครั้งที่แอปพลิเคชัน Android ขัดข้อง (หรือแอปพลิเคชัน Java สำหรับกรณีนั้น) a Stack trace
จะถูกเขียนลงในคอนโซล (ในกรณีนี้คือ logcat) การติดตามสแต็กนี้มีข้อมูลที่สำคัญสำหรับการแก้ปัญหาของคุณ
Android Studio
ในแถบด้านล่างของหน้าต่างคลิกที่Logcat
ปุ่ม หรือคุณสามารถกด+alt 6ตรวจสอบให้แน่ใจว่าได้เลือกตัวจำลองหรืออุปกรณ์ของคุณในDevices
แผงควบคุม จากนั้นลองค้นหา stack trace ซึ่งแสดงเป็นสีแดง อาจมีข้อมูลหลายอย่างที่ล็อกอินเข้าสู่ Logcat ดังนั้นคุณอาจต้องเลื่อนดูเล็กน้อย วิธีง่ายๆในการค้นหา stack trace คือการล้าง logcat (โดยใช้ถังรีไซเคิลทางด้านขวา) และปล่อยให้แอปหยุดทำงานอีกครั้ง
ฉันพบการติดตามสแต็กแล้วตอนนี้คืออะไร?
เย้! คุณแก้ปัญหาได้ครึ่งทาง
คุณจะต้องค้นหาสิ่งที่ทำให้แอปพลิเคชันของคุณขัดข้องโดยการวิเคราะห์การติดตามสแต็ก
อ่านข้อมูลเกี่ยวกับสแต็กเทรซใน "สแต็กแทร็กคืออะไรและฉันจะใช้เพื่อแก้ไขข้อผิดพลาดแอปพลิเคชันของฉันได้อย่างไร "
ฉันยังแก้ปัญหาไม่ได้!
หากคุณพบของคุณException
และบรรทัดที่มันเกิดขึ้นและยังไม่สามารถหาวิธีแก้ไขได้อย่าลังเลที่จะถามคำถามใน StackOverflow
พยายามทำให้รัดกุมที่สุด: โพสต์สแต็กแทร็กและโค้ดที่เกี่ยวข้อง (เช่นไม่กี่บรรทัดถึงบรรทัดที่โยนException
)
คุณสามารถใช้เครื่องมือ ADB ของ Googleที่จะได้รับLogcat file
ในการวิเคราะห์ปัญหา
adb logcat > logcat.txt
เปิดlogcat.txt
ไฟล์และค้นหาชื่อแอปพลิเคชันของคุณ ควรมีข้อมูลว่าเหตุใดจึงล้มเหลวหมายเลขบรรทัดชื่อคลาส ฯลฯ
ขั้นแรกให้ตรวจสอบว่าจุดใดที่แอปของคุณขัดข้อง ( Unfortunately, MyApp has stopped.
) สำหรับสิ่งนี้คุณสามารถใช้ได้Log.e("TAG", "Message");
โดยใช้บรรทัดนี้คุณจะเห็นบันทึกแอปของคุณใน logcat
หลังจากนั้นคุณจะพบว่าจุดใดที่แอปของคุณหยุดทำงานคุณสามารถแก้ปัญหาได้ง่ายมาก
เพียงตรวจสอบข้อผิดพลาดในบันทึกแมว
คุณได้รับอ็อพชัน log cat จากใน eclipse:
หน้าต่าง -> แสดงมุมมอง -> อื่น ๆ -> Android-> Logcat
แมวบันทึกมีข้อผิดพลาด
นอกจากนี้คุณยังสามารถตรวจสอบข้อผิดพลาดได้โดยเรียกใช้แอปพลิเคชันในโหมดดีบัก ขั้นแรกตั้งค่าเบรกพอยต์หลังจากนั้นโดยทำ:
คลิกขวาที่ project-> debug as-> แอปพลิเคชัน Android
หมายเหตุ:คำตอบนี้ใช้ Android Studio 2.2.2
หมายเหตุ 2: ฉันกำลังพิจารณาว่าอุปกรณ์ของคุณเชื่อมต่อสำเร็จแล้ว
สิ่งแรกที่คุณต้องทำเมื่อแอปพลิเคชันของคุณขัดข้องคือดู LogCat ที่ด้านล่างของ Android Studio จะมีแถบเครื่องมือพร้อมรายการเมนู:
คลิกที่ "Android Monitor" (อันที่ฉันขีดเส้นใต้ในภาพด้านบน ^)
ตอนนี้คุณจะได้รับสิ่งนี้:
เปลี่ยน " Verbose
" เป็น " Error
" ตอนนี้จะแสดงเฉพาะข้อผิดพลาดที่บันทึกไว้ อย่ากังวลกับข้อผิดพลาดเหล่านี้ (ถ้าคุณได้รับ) ตอนนี้
ตกลง. ตอนนี้ทำในสิ่งที่คุณทำเพื่อให้แอปของคุณพัง หลังจากแอปของคุณขัดข้องให้ไปที่ logcat ของคุณ คุณควรพบบันทึกข้อขัดข้องใหม่ที่มีจำนวนมากat:x.x.x
: และCaused by: TrumpIsPresidentException
ตัวอย่างเช่น ไปที่Caused by:
คำสั่งนั้นใน logcat ของคุณ
ถัดไปไปที่Caused By:
ควรจะมีข้อยกเว้นที่เกิดขึ้น ในกรณีของฉันมันเป็นRuntimeException
และอยู่ภายใต้มันควรจะมีเส้นที่มีความเชื่อมโยงสีฟ้าเช่น:
หากCaused by:
ไม่มีบรรทัดที่มีข้อความสีน้ำเงินอยู่ข้างใต้ให้มองหาข้อความอื่นCaused by:
ที่มี
คลิกที่ลิงค์สีฟ้านั้น ควรนำคุณไปสู่จุดที่เกิดปัญหา ในกรณีของฉันมันเกิดจากบรรทัดนี้:
throw new RuntimeException();
ตอนนี้ฉันรู้แล้วว่าทำไมมันถึงพัง เป็นเพราะฉันโยนข้อยกเว้นให้ตัวเอง นี่เป็นข้อผิดพลาดที่เห็นได้ชัด
อย่างไรก็ตามสมมติว่าฉันมีข้อผิดพลาดอื่น:
java.lang.NullPointerException
ฉันตรวจสอบ logcat ของฉันฉันคลิกที่ลิงค์สีน้ำเงินที่ให้ฉันและพาฉันมาที่นี่:
mTextView.setText(myString);
ตอนนี้ฉันต้องการแก้ไขข้อบกพร่อง ตามคำถาม StackOverflow นี้เป็น NullPointerException null
กล่าวว่าสิ่งที่เป็น
ดังนั้นขอหาสิ่งที่เป็นโมฆะ มีความเป็นไปได้สองประการ ไม่ว่าจะmTextView
เป็นโมฆะหรือmyString
เป็นโมฆะ หากต้องการทราบก่อนmTextView.setText(mString)
บรรทัดฉันเพิ่มสองบรรทัดนี้:
Log.d("AppDebug","mTextView is null: " + String.valueOf(mTextView == null);
Log.d("AppDebug","myString is null: " + String.valueOf(myString== null);
ตอนนี้เหมือนกับที่เราทำไปก่อนหน้านี้ (เราเปลี่ยน Verose เป็น Error) เราต้องการเปลี่ยน "Error" เป็น "Debug" เนื่องจากเรากำลังบันทึกโดยการดีบัก นี่คือวิธีการบันทึกทั้งหมด:
Log.
d means Debug
e means error
w means warning
v means verbose
i means information
wtf means "What a terrible failure". This is similar to Log.e
ดังนั้นตั้งแต่เราใช้Log.d
เรากำลังตรวจสอบใน Debug นั่นเป็นเหตุผลที่เราเปลี่ยนเป็น debug
ประกาศLog.d
มีพารามิเตอร์แรกในกรณีของเราคือ "AppDebug" คลิกที่เมนูแบบเลื่อนลง "No Filters" ที่ด้านบนขวาของ Logcat เลือก "แก้ไขการกำหนดค่าตัวกรอง" ตั้งชื่อให้กับตัวกรองของคุณและใน "แท็กบันทึก" ให้ใส่ "การแก้ไขข้อบกพร่องของแอป" คลิก "ตกลง" ตอนนี้คุณควรเห็นสองบรรทัดใน logcat:
yourPackageNameAndApp: mTextView is null: true
yourPackageNameAndApp: myString is null: false
ตอนนี้เรารู้แล้วว่า mTextView เป็นโมฆะ
ฉันสังเกตรหัสของฉันตอนนี้ฉันสังเกตเห็นบางอย่าง
ฉันได้private TextView mTextView
ประกาศที่ด้านบนสุดของชั้นเรียน แต่ฉันไม่ได้กำหนดมัน
โดยทั่วไปฉันลืมทำสิ่งนี้ใน onCreate () ของฉัน:
mTextView = (TextView) findViewById(R.id.textview_id_in_xml);
เหตุใดจึงmTextView
เป็นโมฆะเพราะฉันลืมบอกแอปของฉันว่ามันคืออะไร ฉันจึงเพิ่มบรรทัดนั้นเรียกใช้แอพของฉันและตอนนี้แอพไม่พัง
ป๊อปอัปนี้จะแสดงเฉพาะเมื่อคุณได้รับข้อยกเว้นร้ายแรงในโค้ดของคุณซึ่งจะหยุดการทำงานของแอป มันอาจจะเป็นข้อยกเว้นใด ๆNullPointerException
, OutOfMemoryException
ฯลฯ
วิธีที่ดีที่สุดในการตรวจสอบคือผ่านLogcatหากคุณยังพัฒนาแอปใน Android studio ซึ่งเป็นวิธีที่รวดเร็วในการอ่านการติดตามสแต็กและตรวจสอบสาเหตุของแอป
หากแอปของคุณใช้งานได้อยู่แล้วคุณจะไม่สามารถใช้logcatได้ ดังนั้นคุณสามารถนำCrashlytics
ไปใช้เพื่อให้รายงานข้อบกพร่องของข้อยกเว้นใด ๆ ที่เกิดขึ้น
ตรวจสอบLogcat
ข้อความของคุณและดูManifest
ไฟล์ของคุณ น่าจะมีบางอย่างขาดหายไปเช่นการกำหนดActivity,
User permission` เป็นต้น
คุณสามารถใช้เครื่องมือเหล่านี้:
adb logcat
adb logcat> logs.txt (คุณสามารถใช้ตัวแก้ไขเพื่อเปิดและค้นหาข้อผิดพลาดได้)
eclipse logcat (หากมองไม่เห็นใน eclipse ให้ไปที่ Windows-> Show View-> Others-> Android-> LogCat)
Android Debug Monitor หรือ Android Device Monitor (พิมพ์ command monitorหรือเปิดผ่าน UI)
- Android Studio
ฉันขอแนะนำให้ใช้Android Debug Monitorเป็นสิ่งที่ดี เนื่องจากคราสแฮงค์เมื่อมีบันทึกมากเกินไปและผ่านตัวกรอง adb logcat และยากทั้งหมด
คุณต้องตรวจสอบไฟล์ Stack trace
ต้องทำอย่างไร?
บน IDE ของคุณตรวจสอบรูปแบบหน้าต่าง LOGCAT
หากคุณมองไม่เห็นหน้าต่าง logcat ให้ไปที่เส้นทางนี้และเปิดขึ้น
window->show view->others->Android->Logcat
หากคุณใช้ Google-Api ไปที่เส้นทางนี้
adb logcat> logcat.txt
ในวิธีการ showToast () ด้านล่างคุณต้องส่งผ่านพารามิเตอร์อื่นสำหรับบริบทหรือบริบทแอปพลิเคชันโดยการทำเช่นนั้นคุณสามารถลองได้
public void showToast(String error, Context applicationContext){
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.custom_toast, (ViewGroup)
findViewById(R.id.toast_root));
TextView text = (TextView) findViewById(R.id.toast_error);
text.setText(error);
Toast toast = new Toast(applicationContext);
toast.setGravity(Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setView(view);
toast.show();
}
ให้ฉันแบ่งปันการวิเคราะห์ Logcat พื้นฐานเมื่อคุณพบกับ Force Close (เมื่อแอปหยุดทำงาน)
เอกสาร
เครื่องมือพื้นฐานจาก Android ในการรวบรวม / วิเคราะห์บันทึกคือ logcat
นี่คือหน้าของ Android เกี่ยวกับ logcat
หากคุณใช้ android Studio คุณสามารถตรวจสอบLINKนี้ได้
การจับภาพ
โดยทั่วไปคุณสามารถจับ Logcat ด้วยตนเองด้วยคำสั่งต่อไปนี้ (หรือเพียงตรวจสอบหน้าต่าง AndroidMonitor ใน AndroidStudio):
adb logcat
มีพารามิเตอร์มากมายที่คุณสามารถเพิ่มลงในคำสั่งซึ่งช่วยให้คุณกรองและแสดงข้อความที่คุณต้องการ ... นี่เป็นเรื่องส่วนตัว ... ฉันมักจะใช้คำสั่งด้านล่างเพื่อรับการประทับเวลาของข้อความ:
adb logcat -v time
คุณสามารถเปลี่ยนทิศทางผลลัพธ์ไปยังไฟล์และวิเคราะห์ใน Text Editor
กำลังวิเคราะห์
หากแอปของคุณขัดข้องคุณจะได้รับสิ่งต่อไปนี้
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
ข้อผิดพลาดข้อยกเว้นตัวชี้ NULL
- ข้อมูลโดยละเอียดเกี่ยวกับข้อผิดพลาด:
Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.onBackPressed()' on a null object reference
คุณพยายามเรียกเมธอดonBackPressed()
จากFragmentActivity
วัตถุ อย่างไรก็ตามวัตถุนั้นคือnull
ตอนที่คุณทำ
Stack Trace: Stack Trace แสดงให้คุณเห็นลำดับการเรียกใช้เมธอด ... บางครั้งข้อผิดพลาดเกิดขึ้นในเมธอดการโทร (ไม่ใช่ในเมธอดที่เรียก)
ที่ com.example.khan.abc.AudioFragment $ 1. เมื่อคลิก (AudioFragment.java:125)
เกิดข้อผิดพลาดในไฟล์วิธีการcom.example.khan.abc.AudioFragment.java
ภายในonClick()
ที่บรรทัด: 125
(stacktrace แสดงบรรทัดที่เกิดข้อผิดพลาด)
ถูกเรียกโดย:
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)
ฯลฯ ....
ภาพรวม
นี่เป็นเพียงภาพรวม ... บันทึกทั้งหมดไม่ง่าย แต่ข้อผิดพลาดจะให้ปัญหาที่เฉพาะเจาะจงและรายละเอียดแสดงปัญหาทั้งหมด ... เป็นเพียงการแบ่งปันความคิดและให้ข้อมูลระดับเริ่มต้นแก่คุณ ...
ฉันหวังว่าฉันจะช่วยคุณได้บ้าง ...
ใช้LogCatและพยายามค้นหาสิ่งที่ทำให้แอปขัดข้อง
หากต้องการดู Logcat หากคุณใช้Android Studio ให้กดALT + 6 หรือ
ถ้าคุณใช้Eclipseจากนั้น Window -> Open Perspective -> Other - LogCat
ไปที่ LogCat จากเมนูแบบเลื่อนลงเลือกข้อผิดพลาด ซึ่งจะมีข้อมูลที่จำเป็นทั้งหมดเพื่อช่วยคุณในการแก้ไขข้อบกพร่อง หากไม่ได้ผลให้โพสต์ LogCat เป็นการแก้ไขคำถามของคุณแล้วใครบางคนจะช่วยคุณได้
หากแอปของคุณขัดข้องด้วยเหตุผลบางประการโดยไม่มี stacktrace ที่ดี ลองดีบักตั้งแต่บรรทัดแรกและไปทีละบรรทัดจนกว่าจะผิดพลาด แล้วคุณจะมีคำตอบว่าบรรทัดไหนที่ทำให้คุณเดือดร้อน จากนั้นคุณสามารถห่อเป็นลองจับบล็อกและพิมพ์ผลลัพธ์ข้อผิดพลาด
คุณยังสามารถรับข้อความแสดงข้อผิดพลาดนี้ได้ด้วยตัวเองโดยไม่มีการติดตามสแต็กหรือข้อความแสดงข้อผิดพลาดเพิ่มเติม
ในกรณีนี้คุณต้องตรวจสอบให้แน่ใจว่ารายการ Android ของคุณได้รับการกำหนดค่าอย่างถูกต้อง (รวมถึงการรวมรายการใด ๆ ที่เกิดขึ้นจากไลบรารีและกิจกรรมใด ๆ ที่มาจากไลบรารี) และให้ความสนใจเป็นพิเศษกับกิจกรรมแรกที่แสดงในแอปพลิเคชันของคุณในไฟล์รายการของคุณ .
ความผิดพลาดระหว่างการพัฒนา
ลองใช้logviewเครื่องมือโปรดของฉันเพื่อรับบันทึกและวิเคราะห์ในระหว่างการพัฒนา
ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมาย./logview
และ./lib/logview.jar
เป็นปฏิบัติการได้เมื่อรันใน Linux
ถ้าคุณไม่ชอบมันมีอยู่เป็นจำนวนมากทางเลือกที่ผู้ชมบันทึกเดสก์ทอปสำหรับ Android
ชนในป่า
ผสานรวมเครื่องมือรายงานข้อขัดข้องแบบเรียลไทม์เช่นFirebase Crashlyticsเพื่อรับข้อยกเว้นที่ไม่สามารถจัดการได้ซึ่งเกิดขึ้นกับอุปกรณ์ของผู้ใช้
อ่านวิธีการเผยแพร่แอป Buggy (และ Live to Tell the Tale)เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการจัดการข้อบกพร่องในสนาม
ผู้คนทำผิดพลาดและการเขียนโค้ดก็เช่นกัน
เมื่อใดก็ตามที่เคยerror
เกิดขึ้นให้ตรวจสอบกับ Logcat ด้วยข้อความที่เป็นสีแดงเสมออย่างไรก็ตามคุณสามารถค้นหาปัญหาที่แท้จริงในข้อความสีฟ้าพร้อมขีดเส้นใต้ในข้อความสีแดงเหล่านั้น
ตรวจสอบให้แน่ใจว่าคุณสร้างใหม่activity
หรือไม่ให้ประกาศactivity
ในAndroidManifest
ไฟล์เสมอ
ถ้าจะเพิ่ม Permission ให้ประกาศในAndroidMainifest
ไฟล์ด้วย
Logcat - เพื่อตรวจสอบบันทึกในขั้นตอนการพัฒนาของ Android Studio
ในขั้นต้นให้ล้าง Logcat และปล่อยให้แอปหยุดทำงานอีกครั้งเพื่อให้คุณได้รับเฉพาะรายละเอียดบันทึกที่ผิดพลาด คุณต้องตรวจสอบการติดตาม Stack
ในขณะที่น่าเสียดายที่ MyApp หยุดทำงาน มันมีหลายสาเหตุ คุณสามารถตรวจสอบบันทึกเดียวกันได้ สำหรับสิ่งนี้คุณสามารถใช้ Log.e ("TAG", "Message");
ข้อผิดพลาดทั่วไประหว่างแอปขัดข้องเช่น:
- ความผิดพลาดในการเข้ารหัส (การใช้คำหลักไม่ถูกต้อง)
- ชื่อคุณสมบัติไม่ตรงกัน
- ปลั๊กอินที่ไม่รองรับ (อาจจะ)
- เวอร์ชันไม่ตรงกัน (อาจจะ)
- ไม่มีกิจกรรมในไฟล์ AndroidManifest
- ไม่มีสิทธิ์ในไฟล์ AndroidManifest
- NullPointerException ที่พบบ่อยที่สุด
- ประกาศ แต่ไม่ได้กำหนด
วิธีแก้ไขข้อผิดพลาดข้อขัดข้องของแอป:
- จำไว้เหนือประเด็นและผ่านมันไป
- ด้วยข้อผิดพลาดคุณจะได้รับชื่อไฟล์เป็นสีฟ้า (คลิกที่พวกเขาและข้ามไปยังรหัสจากข้อผิดพลาดที่เกิดขึ้น)
ขั้นแรกคุณต้องตรวจสอบว่าแอปของคุณขัดข้องที่ไหนและทำไม(Unfortunately, MyApp has stopped.).
ด้วยความช่วยเหลือของLOG
คุณจะพบสิ่งที่ผิดพลาด
หลังจากนั้นคุณจะพบว่าจุดใดที่แอปของคุณหยุดการแก้ไขจากจุดของคุณ
หากคุณไม่มีการเข้าสู่ระบบที่น่าสนใจในเทอร์มินัลของคุณ (หรือไม่เกี่ยวข้องโดยตรงกับแอปของคุณ) ปัญหาของคุณอาจเกิดจากไลบรารีดั้งเดิม ในกรณีนี้คุณควรตรวจสอบไฟล์ "tombstone" ภายในเทอร์มินัลของคุณ
ตำแหน่งเริ่มต้นสำหรับไฟล์ tombstone ขึ้นอยู่กับอุปกรณ์ทุกเครื่อง แต่หากเป็นเช่นนั้นคุณจะมีบันทึกบอก: Tombstone written to: /data/tombstones/tombstone_06
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบhttps://source.android.com/devices/tech/debug
การเรียกใช้คำสั่งนี้ในเทอร์มินัลสามารถช่วยค้นหาปัญหาได้:
gradlew build > log.txt 2>details.txt
จากนั้นคุณควรไปที่ตำแหน่งไฟล์ gradlew ในอ่านสองไฟล์บันทึกด้านบน