23 กุมภาพันธ์ 2557

[Android Dev Tips] ปัญหาตูดหมึกๆกับ Debug Certificate Expired ขณะที่ทำการ Run


        เรื่องมันมีอยู่ว่า มีผู้ที่หลงเข้ามาอ่านได้มาปรึกษาเจ้าของบล็อกเกี่ยวกับโปรเจคแอนดรอยด์ เพราะเจอปัญหาโปรเจคไม่มีเออเรอร์ใดๆในโปรแกรม แต่กลับกด Run เพื่อทดสอบไม่ได้ เจ้าของบล็อกก็เลยต้องเข้าไปช่วยดูให้ และสังเกตเห็นที่หน้าต่าง Problems ขึ้นข้อความดังนี้


        สำหรับปัญหานี้คือ Keystore หมดอายุนั่นเอง ถ้ายังจำกันได้อยู่ ตอนสร้าง Keystore เพื่อใช้ Export ไฟล์ APK จะมีการกำหนดเวลาหมดอายุของ Keystore ตัวนั้นๆด้วยใช่มั้ยล่ะ ซึ่ง debug.keystore ที่เอาไว้ใช้เวลาทดสอบก็มีเวลาหมดอายุเช่นกัน โดยในภาพจะหมดอายุวันที่ 16 กุมภาพันธ์ ค.ศ. 2530 หรือในอีก 516 ปี ซึ่งตรงนี้เจ้าของบล็อกก็ไม่ได้สนใจอะไร

        วิธีแก้ปัญหาเวลาที่ debug.keystore เกิดอาการงอแง ก็ให้เข้าไปที่

                C:\Users\[Username]\.android\

        โดยที่ [Username] ก็คือชื่อ User บนคอมพิวเตอร์ของผู้ที่หลงเข้ามาอ่านนั้นเอง จากนั้นก็เข้าไปทำการลบไฟล์ debug.keystore ซะ



        อันนี้เป็น Directory บน Windows Vista, 7, 8 และ 8.1 ในกรณีที่เป็น Windows XP ก็จะเป็น

                C:\Documents and Settings\[Username]\.android\

         ส่วน OS X กับ Linux จะอยู่ที่

                ~/.android/


        เมื่อลบเสร็จแล้วก็ให้ปิด-เปิดโปรแกรมใหม่หรือกดที่ File > Restart เลยก็ได้



        เมื่อโปรแกรมเปิดขึ้นมาใหม่อีกครั้งก็ให้ Clean Project ซักรอบนึงก่อน โดยไปที่ Project > Clean... โดยจะทำการ Clean ทุกโปรเจคที่มีหรือเฉพาะบางอันก็ได้แล้วแต่จะเลือก




        พอลองกด Run ใหม่ก็จะพบว่าสามารถ Build และติดตั้งลงบนเครื่องได้อย่างปกติสุข เพราะเมื่อลบไฟล์ debug.keystore ไปแล้ว โปรแกรมจะสร้างให้ใหม่โดยอัตโนมัติ


        แต่ทว่า....ถ้ายังเป็นเหมือนเดิมล่ะ? โปรเจคไม่ได้เออเรอร์แต่ว่ายัง Build ไม่ผ่านเหมือนเดิม

        เจ้าของบล็อกก็นั่งงมให้ผู้ที่หลงเข้ามาอ่านที่มาปรึกษาต่อไปเรื่อยๆว่าทำไม ทำไม และทำไม เจ้า debug.keystore มันมีปัญหาอะไร นั่งเพ่งไปที่ข้อความแจ้งใน Problems


        พลางคิดเล่นๆไปว่า หมดอายุปี 2530 แฮะ...ก่อนเจ้าของบล็อกเกิดเสียอีก

        สักพักก็เหลือบมองไปดูที่มุมขวาล่างของหน้าจอคอม



        ความคิดผุดขึ้นมาในหัวทันที และคิดว่าไม่น่าจะปัญญาอ่อนขนาดนั้นมั้ง แต่ก็ขอลองอะไรซะหน่อย



        ลองปรับเปลี่ยนอะไรเล็กน้อย



        เหลือบมองไปที่มุมขวาล่างอีกครั้ง



        ลองกด Run ใหม่อีกครั้ง....



        โอเค...จบ....

        สรุปคือโปรแกรมมันไม่รู้จัก ค.ศ. และ พ.ศ. มันรู้แค่ว่าใน debug.keystore หมดอายุในปี (ค.ศ.) 2530 ส่วนเครื่องที่ใช้อยู่ปัจจุบันเป็นปี (พ.ศ.) 2557 มันก็เลยสรุปว่า

        หมดอายุไป 27 ปีแล้ว!!!

        เป็นปัญหาที่ดูตูดหมึกสุดๆ....


        เพิ่มเติมสำหรับคนที่ใช้ Mac OSX เสียหน่อยดีกว่า

        ก่อนอื่นเข้าไปที่การตั้งค่า Language & Region ก่อน



        ที่เจ้าของบล็อกเจอคือมี Preferred Languages เป็นภาษาไทยด้วย ก็เลยลบออก จนเหลือ English ก็ตั้งค่าตามภาพข้างล่าง



        จากนั้นก็เข้าไปลบ debug.keystore อีกทีกันพลาด โดยเช็คก่อนว่า Eclipse ได้ใช้ไฟล์ debug.keystore จากที่ไหน



        จากนั้นก็เข้าไปลบทิ้งซะ แล้วเปิด Eclipse ใหม่อีกครั้งก็ใช้ได้ปกติแล้ว





เหล่าพันธมิตรแอนดรอยด์

Devahoy Layer Net NuuNeoI The Cheese Factory Somkiat CC Mart Routine Artit-K Arnondora Kamonway Try to be android developer Oatrice Benz Nest Studios Kotchaphan@Medium Jirawatee@Medium Travispea@Medium