อันนี้เป็นเคล็ดแก้ปัญหาที่เจอกันในรอบ ที่ผ่านมาครับ เครื่อง Mac ของพี่เหล็งที่มาอบรม มันเพิ่ม Android เป็น platform ให้โปรเจค PhoneGap ไม่ได้ เลยมานั่งหาสาเหตุกัน โดยข้อความจะขึ้นเดือนแบบนี้
Teerasejs-iMac:App teerasejjiraphatchandej$ cordova platform add android Checking Android requirements... [Error: ERROR : Make sure JAVA_HOME is set, as well as paths to your JDK and JRE for java.]
ไอหย๋า จู่ๆ ไม่มีปี่ไม่มีขลุ่ย ไม่สามารถเพิ่ม Android เข้าไปในโปรเจคเพราะ JAVA_HOME หาย!
ถึงแม้ว่าเราจะลองติดตั้ง Java เพิ่มเติม (เพราะคาดเอาไว้ว่าน่าจะเป็นเพราะ OS X Mavericks)
ก็ไม่เป็นผล เพราะการ install 2 ตัวด้านบน ระบบได้ติดตั้ง Java ลงไปในเครื่องเราแล้ว แต่ Android SDK ของเราหา Java ไม่เจอแจ้
ทางเราเลยแก้ด้วยวิธีนี้ครับ
วิธีแก้ก็ตั้งค่า JAVA_HOME ลงไปใน .bash_profile ซะเลย
1. เปิด .bash_profile ขึ้นมาซะก่อน
เราควรจะมี bash_profile จากวิธีการติดตั้ง Android SDK และ ADT ในบทความนี้อยู่แล้ว ก็พิมพ์ชุดคำสั่งด้านล่างทั้งหมดเพื่อเปิด bash_profile ขึ้นมา ซึ่งผมจะเปิดใน TextEdit
$ cd ~/ $ open -e .bash_profile
2. จากนั้นใส่ path ของ Java ลงไปแบบนี้
ใส่ตามตัวอย่างด้านล่างลงไป และทำการบันทึกไฟล์ครับ ส่วนที่เห็นด้านบนคือ Android SDK path ที่ตั้งค่าไว้ในบทความเตรียมเครื่อง OS X ให้พร้อมสำหรับ Android app ก่อนหน้านี้
export PATH=${PATH}:/Applications/adt-bundle-mac/sdk/tools:/Applications/adt-bundle-mac/sdk/platform-tools: export JAVA_HOME=$(/usr/libexec/java_home)
3. ลองเพิ่ม Android platform ใหม่
จากนั้นให้ปิดแล้ว เลือกได้ว่าจะปิดและเปิด Terminal ใหม่เพื่อลองเพิ่ม Android platform อีกครั้ง หรือจะใช้คำสั่งด้านล่างใน Terminal ก่อนที่จะลองสั่งเพิ่ม Android platform อีกครั้งก็ได้ครับ
source .bash_profile
ทิ้งท้าย
ตอนที่ผมเขียนบทความนี้อยู่ ไม่ทราบสาเหตุแน่ชัดว่าทำไมจู่ๆ JAVA_HOME หายไป?? เพราะตอนที่ผมอัพเดตมาเป็น OS X Mavericks 10.9 นั้น ระบบจะเตือนให้ download Java มาติดตั้งโดยอัตโนมัติ และไม่มีปัญหาอะไรจนถึงปัจจุบัน แต่เครื่องที่เจอปัญหาเป็น MacBook Air 2013 ถอยมาสดๆ เพื่อมาเรียน PhoneGap ของคุณเหล็งเลย ใครเจอแบบเดียวกัน comment คุยกันด้านล่างได้เลยครับ จะได้รวบรวมข้อมูลให้เป็นประโยชน์สำหรับคนอื่นๆ ต่อไป
UPDATE: ตอนนี้ลูกศิษย์ผมอีกคนยืนยันมาว่าเจอปัญหากับเครื่อง Mac OS X ใหม่เช่นกันครับ
สนใจเรื่อง Web Design, Adobe for Web, และ PhoneGap ฝาก Email รับบทความใหม่ๆ จากผมได้ที่นี่ครับ
ดูเนื้อหารวมเรื่อง PhoneGap ได้ที่ nextflow.in.th/phonegap