เทคโนโลยีนั้นมีการปรับเปลี่ยนตลอดเวลา เมื่อถึงเวลา วิธีการใช้งานเดิมๆ ก็อาจจะไม่ได้ผลอีกต่อไป กับ Android Studio ก็เช่นกันครับ
แน่นอนว่าพลมีการแนะนำวิธีการติดตั้ง JDK สำหรับเป็นส่วนหนึ่งของคอร์สเริ่มต้นเรียนรู้ทำแอพด้วย Ionic Framework หรือ Google Flutter มาแล้ว แต่วิธีการนั้นก็อาจจะต้องเปลี่ยน เพราะการมาถึงของ Android Studio เวอร์ชั่น Arctic Fox ครับ
ส่วนนี้จะถูกแนะนำแทนที่คลิปเดิมในคอร์ส Google Flutter และ Ionic Framework ด้วยเช่นกันครับ
Android Studio Arctic Fox
จริงๆ แล้ว Android Studio Arctic Fox ก็ไม่ได้เป็นอย่างอื่นนอกจากเวอร์ชั่นปรับปรุงของ Android Studio ที่แก้ไขข้อผิดพลาดในเวอร์ชั่นปัจจุบัน และเสริมความสามารถใหม่ๆ เข้ามา แต่ก็มีส่วนที่น่าสนใจดังนี้ครับ
- รองรับ Apple M1 ชิปทำเองของ Apple แทน Intel ที่ใช้กันมานาน
- ระบบการจัดการและสร้าง UI ใหม่ Compose
ปัญหาที่เกิดขึ้นหลังจากอัพเดต Android Studio เป็น Arctic Fox
ทีนี้ในคอร์สออนไลน์ทั้งแบบสอนสด และแบบเรียนผ่านวิดีโอออนไลน์ มีหลายคนที่อัพเดตไปใช้ Arctic Fox แล้วเจอปัญหาแล้ว จากการรันคำสั่ง flutter doctor ประมาณด้านล่าง
[!] Android Studio (version 2020.3)
✗ Unable to find bundled Java version.
แก้ปัญหา
วิธีแก้ปัญหามี 5 ขั้นตอน ทำตามง่ายๆ ด้านล่างเลย
1. ติดตั้ง Java Development Kit (JDK)
ติดตั้ง Homebrew
สำหรับการติดตั้ง Java Development Kit หรือ JDK พลยังแนะนำให้ใช้ Homebrew เหมือนเดิม
ใครยังไม่มี Homebrew จัดไปตามคลิปสอนด้านล่าง แปปเดียวมีแน่นอน
ติดตั้ง JDK
เปิดโปรแกรม Terminal และรันคำสั่งด้านล่างทีละคำสั่ง
brew update
brew install cask
brew tap adoptopenjdk/openjdk
// ระหว่างคำสั่งด้านล่างทำงาน จะมีการถามรหัสผ่าน ให้กรอกลงไปได้เลย (ตอนกรอกจะไม่มีอะไรแสดงขึ้นมานะ ต้องมั่นใจ และกด enter
brew install adoptopenjdk8
เพิ่มเติม ถ้าต้องการติดตั้งเป็น JDK 11 ให้รันคำสั่งด้านล่างแทน ต้องเลือกตัวใดตัวหนึ่งระหว่าง 8 กับ 11 นะ จะได้ไม่สับสน
brew install adoptopenjdk11
จากนั้นทดสอบรันคำสั่ง ด้านล่าง
java -version
น่าจะได้เวอร์ชั่นประมาณด้านล่าง แสดงขึ้นมา (เวอร์ชั่นด้านหน้าเป็น 11 ถือว่าโอเค)
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.292-b10, mixed mode)
2. ตรวจสอบที่อยู่ของ Java
ให้เปิด Terminal และทำการรันคำสั่ง
/usr/libexec/java_home
จะมีการแสดงที่อยู่ของ Java ขึ้นมาประมาณด้านล่าง แตกต่างไปตามเครื่อง และเวอร์ชั่นของ Java นะ แต่มันควรขึ้นที่อยู่มาแบบนี้ล่ะ
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
3. เช็คก่อน Terminal ของเราเป็นตัวไหน
ในที่นี้ Terminal ของ MacOS จะมี 2 แบบคือแบบ bash หรือ zsh ต้องให้รู้แน่ว่าเราใช้ตัวไหนกันด้วยการรันคำสั่งด้านล่าง
ps -p $$
// จะได้ข้อความประมาณด้านล่าง อย่างของพลจะเป็น zsh ตามข้อมูล
PID TTY TIME CMD
49273 ttys005 0:00.20 /bin/zsh
4. กำหนด PATH
อย่างแรก ถ้าเราไม่มีการสร้าง profile ของ Terminal มาก่อน เราสามารถสร้างได้โดยใช้คำสั่งด้านล่าง (แยกตามประเภท Terminal)
// zsh
touch ~/.zshrc
// bash
touch ~/.bashprofile
และรันคำสั่งเพื่อเปิดไฟล์ (แยกตามประเภท Terminal)
// zsh
open -e ~/.zshrc
// bash
open -e ~/.bashprofile
ไฟล์นี้อาจจะมีการสร้างไว้ก่อนหน้านี้อยู่แล้ว เราไม่จำเป็นต้องแก้ไขข้อมูลเดิมที่มีอยู่ในไฟล์
แต่ให้ลงมาด้านล่างสุดของไฟล์ เพื่อเติมคำสั่งด้านล่างลงไป
export JAVA_HOME=$(/usr/libexec/java_home)
จากนั้นบันทึกไฟล์ให้เรียบร้อย
กลับมาที่ Terminal และรันคำสั่งด้านล่าง เพื่อให้ Terminal ทำการอ่านค่าที่เราเพิ่มเข้าไปในไฟล์
// zsh
source ~/.zshrc
// bash
source ~/.bashprofile
จากนั้นทดสอบรันคำสั่งด้านล่าง เพื่อให้แสดงค่า JAVA_HOME ที่อยู่ในระบบขึ้นมา ควรจะได้ที่อยู่เดียวกับขั้นตอนที่ 2
echo $JAVA_HOME
// ควรได้แบบเดียวกับขั้นตอนที่ 2
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
5. รันคำสั่งสุดท้าย
หลังจากผ่านขั้นตอนทั้งหมดแล้ว เราจะรันคำสั่งด้านล่างทีละคำสั่งในโปรแกรม Terminal
cd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk
เสร็จแล้วให้รันคำสั่ง flutter doctor เช็คอีกที ปัญหาควรจะหายไปแล้วครับ เย้ๆ ???