ฉันต้องการพิมพ์ค่าของตัวแปรบนคอนโซลเพื่อจุดประสงค์ในการดีบัก แต่ system.out.println ไม่ทำงาน
ฉันต้องการพิมพ์ค่าของตัวแปรบนคอนโซลเพื่อจุดประสงค์ในการดีบัก แต่ system.out.println ไม่ทำงาน
คำตอบ:
System.out.println
และLog.d
ทั้งสองไปที่ LogCat ไม่ใช่คอนโซล
หน้าต่าง -> แสดงมุมมอง -> อื่น ๆ ... -> Android-> LogCat
ฉันยังใหม่กับการพัฒนา Android และฉันทำสิ่งนี้:
1) สร้างชั้นเรียน:
นำเข้า android.util.Log; สาธารณะขั้นสุดท้าย Debug { แก้ไขข้อบกพร่องส่วนตัว () {} โมฆะคงที่สาธารณะออก (วัตถุ msg) { Log.i ("ข้อมูล", msg.toString ()); } }
เมื่อคุณจบโครงการให้ลบชั้นเรียน
2) ในการพิมพ์ข้อความไปยัง LogCat ให้เขียน:
Debug.out ("something");
3) สร้างตัวกรองใน LogCat และเขียน "ข้อมูล" ในอินพุต "โดย Log Tag" ข้อความทั้งหมดของคุณจะถูกเขียนที่นี่ :)
เคล็ดลับ: สร้างตัวกรองอื่นเพื่อกรองข้อผิดพลาดทั้งหมดเพื่อแก้ไขข้อบกพร่องได้อย่างง่ายดาย
การเขียนโค้ด followin เพื่อพิมพ์อะไรก็ได้บน LogCat ทำงานได้ดีเยี่ยม !!
int score=0;
score++;
System.out.println(score);
พิมพ์คะแนนบน LogCat ลองสิ่งนี้
ฉันคิดว่าขนมปังปิ้งอาจเป็นวิธีที่ดีในการแสดงค่าของตัวแปร!
โอเค Toast ไม่ซับซ้อน แต่ต้องใช้บริบทในการทำงานอาจเป็นได้MyActivity.this
จากนั้นคุณสามารถเขียน:
Toast.maketext(MyActivity.this, "Toast text to show", Toast.LENGTH_SHORT).show();
แม้ว่า Toast จะเป็นทรัพยากร UI แต่การใช้ในเธรดอื่นที่แตกต่างจากเธรด ui จะส่งข้อผิดพลาดหรือไม่ทำงานหากคุณต้องการพิมพ์ตัวแปรให้ใส่ตัวแปรname.toString()
และเชื่อมต่อกับข้อความที่คุณต้องการในพารามิเตอร์ maketext String )
ขนมปังปิ้งเป็นความคิดที่ไม่ดีมัน "ซับซ้อน" เกินไปที่จะพิมพ์ค่าของตัวแปร ใช้ log หรือ sop และตามที่ได้กล่าวไปแล้วผลลัพธ์ของพวกเขาจะไปที่ logcat มันสมเหตุสมผลก็ต่อเมื่อคุณต้องการเปิดเผยข้อมูลนี้ให้กับผู้ใช้ปลายทาง ...
หากโค้ดที่คุณกำลังทดสอบนั้นค่อนข้างง่ายคุณก็สามารถสร้างโปรเจ็กต์ Java ปกติใน Package Explorer และคัดลอกโค้ดจากนั้นเรียกใช้และแก้ไขที่นั่นจากนั้นคัดลอกกลับไปที่โปรเจ็กต์ Android ของคุณ
ความจริงที่ว่า System.out ถูกเปลี่ยนเส้นทางนั้นค่อนข้างน่ารำคาญสำหรับการทดสอบวิธีง่ายๆอย่างรวดเร็ว แต่นั่นเป็นวิธีแก้ปัญหาที่ง่ายที่สุดที่ฉันพบแทนที่จะต้องเรียกใช้โปรแกรมจำลองอุปกรณ์เพื่อดูว่านิพจน์ทั่วไปใช้งานได้หรือไม่
อย่างไรก็ตามในกรณีที่คุณไม่ทราบตำแหน่งที่แน่นอนของ JSONObject ใน JSONArray ของคุณฉันขอแนะนำให้ใช้รหัสต่อไปนี้: (ฉันคิดว่า "jsonArray" เป็นตัวแปรหลักของคุณพร้อมข้อมูลทั้งหมดและฉันกำลังค้นหา วัตถุภายในอาร์เรย์ที่มีฟังก์ชันเท่ากับ)
JSONArray list = new JSONArray();
if (jsonArray != null){
int len = jsonArray.length();
for (int i=0;i<len;i++)
{
boolean flag;
try {
flag = jsonArray.get(i).toString().equals(obj.toString());
//Excluding the item at position
if (!flag)
{
list.put(jsonArray.get(i));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
jsonArray = list;