[IOIO] การสร้างโปรเจคสำหรับ IOIO และ IOIO-Q บน Android Studio ด้วย Module Dependencies

     ในการเขียนแอปพลิเคชันบน Android Studio เพื่อใช้งานกับบอร์ด IOIO หรือ IOIO-Q จะมีรูปแบบโครงสร้างโปรเจคที่แตกต่างกับ Eclipse ADT อยู่บ้างพอสมควร แต่ทว่าโค๊ดโปรแกรมที่เป็นหัวใจสำคัญหลักก็ยังคงเหมือนเดิม

     สำหรับการเพิ่มไลบรารีของ IOIO เข้าไปในโปรเจคบน Android Studio จะมีอยู่ด้วยกันสองวิธีคือ File Dependencies และ Module Dependencies

     ซึ่งในบทความนี้จะใช้วิธีอิมพอร์ตไลบรารีของ IOIO ด้วยวิธี Module Dependencies และจะมีขั้นตอนในการสร้างโปรเจคเริ่มต้นดังนี้

     ในการสร้างโปรเจคสำหรับใช้งานกับบอร์ด IOIO และ IOIO-Q จะต้องติดตั้งแพ็กเกจใน Android SDK ที่เป็นเวอร์ชันล่าสุด โดยจะต้องติดตั้งทั้ง SDK Platform และ Google APIs

 

      สำหรับหน้าต่าง Android SDK สามารถเปิดได้จากหน้าแรกของ Android Studio โดยเลือกไปที่ Configure > SDK Manager

 

     เมื่อพร้อมแล้ว ให้ทำการสร้างโปรเจคใหม่โดยเลือกที่ Start a new Android Studio Project

 

      ทำการตั้งชื่อแอปพลิเคชันและชื่อโดเมนให้เรียบร้อย โดยที่ชื่อโดเมนไม่จำเป็นต้องมีจริงๆก็ได้ ในตัวอย่างนี้จะตั้งชื่อแอปพลิเคชันว่า IOIO App และชื่อโดเมนว่า inex.co.th จากนั้นจะเห็นว่า Android Studio จะตั้งชื่อแพ็กเกจให้เป็น th.co.inex.ioioapp ด้วยการ Reverse Domain จากนั้นเลือก Directory ที่ต้องการเก็บโปรเจคให้เรียบร้อยในช่อง Project Location จากนั้นกดปุ่ม Next

 

      หน้าถัดมาจะเป็นการเลือกอุปกรณ์ที่ต้องการติดตั้ง ให้เลือกเป็น Phone and Tablet โดยกำหนดเวอร์ชันขั้นต่ำเป็น API 14 ขึ้นไป (ในภาพตัวอย่างเลือกเป็น API 15) จากนั้นให้กดปุ่ม Next

 

      ต่อมาเป็นการเลือก Activity ที่ต้องการจะสร้าง ให้เลือกเป็น Blank Activity แล้วกดปุ่ม Next

 

      หน้าถัดมาเป็นการตั้งชื่อไฟล์ต่างๆสำหรับ Activity ที่จะสร้างขึ้น ถ้าพึ่งหัดเขียนเป็นครั้งแรกยังไม่แนะนำให้แก้ไขชื่อใดๆ เมื่อกำหนดเสร็จหมดแล้วให้กดปุ่ม Finish

 

      รอซักพักใหญ่ๆเพื่อให้ Android Studio ทำการสร้างโปรเจค โดยแนะนำให้เชื่อมต่อกับอินเตอร์เน็ตด้วย เพราะในการใช้งานครั้งแรกอาจจะมีการดาวน์โหลดไฟล์ที่สำคัญสำหรับโปรเจค

 

      สำหรับรูปแบบการแสดงโครงสร้างโปรเจคให้เปลี่ยนจากเดิมที่เป็น Android ไปเป็น Project แทน

 

      เมื่อโปรเจคพร้อมแล้ว ให้ทำการดาวน์โหลดไลบรารีของ IOIO และ IOIO-Q จาก ดาวน์โหลดไลบรารีของบอร์ด IOIO-Q เวอร์ชัน 3.26 สำหรับ IOIO-Q ที่ใช้เฟิร์มแวร์เวอร์ชัน 3.06

      ดาวน์โหลดเสร็จแล้วให้ทำการแตกไฟล์ออกมาเป็นโฟลเดอร์ให้เรียบร้อย

        สำหรับการนำไลบรารีของ IOIO มาใช่ใน Android Studio จะต้องเลือกไปที่ File > Import Modules

 

      จะมีหน้าต่างแสดงขึ้นมาเพื่อเลือก Module หรือไลบรารีที่ต้องการนำมาใช้งานในโปรเจค IOIO App ให้เลือกที่อยู่โปรเจคไลบรารีของ IOIO โดยให้เริ่มจากเลือก IOIOLib ก่อน แล้วกดปุ่ม Next

 

      จากนั้นให้กดปุ่ม Finish

      เมื่ออิมพอร์ตเสร็จแล้ว ก็จะเห็นว่ามี Module ที่ชื่อว่า iOIOLib เพิ่มเข้ามาในโปรเจคแล้ว

 

        ให้อิมพอร์ตไลบรารีที่เหลืออีก 2 ตัว (IOIOLibBT กับ IOIOLibAccessory) ด้วยวิธีเดียวกับ IOIOLib จนครบ

 

      โปรแกรม Android Studio อาจจะแจ้งเออเรอร์เพราะว่าไลบรารีทั้ง 3 ใช้แอนดรอยด์เวอร์ชันคนละตัวกับที่ติดตั้งไว้ใน Android SDK ดังนั้นจะต้องทำการเช็คก่อนว่าได้ติดตั้งเวอร์ชันอะไรไว้ แล้วทำการเปลี่ยนให้ไลบรารีทั้ง 3 ใช้เป็นแอนดรอยด์เวอร์ชันที่ได้ติดตั้งไว้ใน Android SDK แทน

      จากตัวอย่างไลบรารีของ IOIO ได้ใช้เป็นแอนดรอยด์เวอร์ชัน 4.4.2 API 19 แต่ใน Android SDK ของผู้เขียนไม่ได้ติดตั้งไว้ จึงทำให้ Android Studio แจ้งเออเรอร์ดังภาพ

 

      เปิดหน้าต่าง Android SDK ขึ้นมาเพื่อเช็คว่าได้ติดตั้ง SDK Platform เวอร์ชันล่าสุดเป็นเวอร์ชันอะไร (จากตัวอย่างผู้เขียนได้ติดตั้งเป็น Android 5.0.1 API 21)

 

        ให้ทำการเปิดไฟล์ build.gradle ที่อยู่ใน Module ของ IOIO ทั้ง 3 ตัว

 

      ที่คำสั่ง compileSdkVersion ให้เปลี่ยนเป็นเลขเวอร์ชันที่ติดตั้งไว้ใน Android SDK (ในตัวอย่างคือแก้ไขเป็น 21)

 

        เมื่อแก้ไขเสร็จแล้วให้กดปุ่ม Sync Project with Gradle Files

 

      เออเรอร์เกี่ยวกับเวอร์ชันแอนดรอยด์นั้นจะหายไป แต่อาจจะยังมีเออเรอร์สำหรับเวอร์ชันของ Build Tools อยู่ จากภาพตัวอย่างจะเห็นว่าไลบรารีของ IOIO ให้ Build Tools เป็นเวอร์ชัน 19.1.0 ซึ่งไม่ได้ติดตั้งไว้ใน Android SDK

      ให้ทำการเช็คใน Android SDK ว่าได้ติดตั้ง Build Tools เวอร์ชันล่าสุดเป็นเวอร์ชันอะไร จากตัวอย่าง ผู้เขียนได้ติดตั้งเวอร์ชันล่าสุดเป็น 21.1.2

 

 

      กลับมาที่ไฟล์ build.gradle ของไลบรารี IOIO ทั้ง 3 ตัวอีกครั้ง แล้วแก้ไขคำสั่ง buildToolsVersion ให้เป็นเวอร์ชันที่ติดตั้งไว้ใน Android SDK ให้ครบ แล้วกดปุ่ม Sync Project with Gradle Files

 

      จะมีเออเรอร์จาก Gradle แจ้งว่าไม่รู้จักคลาสที่เกี่ยวกับ USB

 

     ทั้งนี้ก็เพราะว่าคลาสดังกล่าวเป็นคลาสที่อยู่ใน Google APIs (ที่ได้ติดตั้งไว้ใน Android SDK) แต่ใน SDK Platform จะไม่มีคลาสดังกล่าว ถึงแม้ว่าจะเป็นเวอร์ชันเดียวกันก็ตาม ดังนั้นจึงต้องมีการนำไฟล์ของคลาสดังกล่าวเพิ่มเข้ามาเองเพื่อให้โปรแกรมรู้จัก

     ให้ทำการเปิดไปที่ที่ได้ติดตั้ง Android SDK เอาไว้ แล้วเข้าไปที่ ..\sdk\add-ons\addon-google_apis-google-XX\libs โดยที่ XX หรือเลข API ที่ได้ติดตั้งไว้ (ผู้เขียนได้ติดตั้งเป็น Android 5.0.1 API 21 ดังนั้น XX ก็คือ 21)

     จะเห็นว่าในนี้มีไฟล์ที่ชื่อว่า usb.jar อยู่

 

      กลับมาที่ Android Studio อีกครั้ง ให้คลิกขวาที่โฟลเดอร์ iOIOLibAccessory แล้วเลือก New > Directory

      ตั้งชื่อว่า libs แล้วกดปุ่ม OK

 

      จากนั้นให้ Copy ไฟล์ usb.jar มา Paste ใส่ในโฟลเดอร์ libs

 

      คำเตือนถึงแม้ว่าจะสามารถลากไฟล์จาก Windows Explorer มาใส่ใน Android Studio ได้เลย แต่ว่าจะเป็นการย้ายไฟล์จริงๆ ทำให้ไฟล์ต้นฉบับย้ายไปอยู่ในโปรเจคแทน ทำให้เวลาสร้างโปรเจคในครั้งต่อไปจะหาไฟล์ดังกล่าวที่เดิมไม่เจอ ดังนั้นทางที่ดีควรใช้วิธี Copy & Paste แทน

 

      จะมีหน้าต่างแจ้งการเพิ่มไฟล์ ให้กด OK


     เมื่อนำไฟล์ usb.jar มาใส่ไว้ใน libs ของ iOIOLibAcessory แล้ว จะต้องไปกำหนดอีกทีว่าให้เรียกใช้ไฟล์ดังกล่าวด้วย โดยเลือกไปที่ File > Project Structure…

 

      หน้าต่าง Project Structure จะแสดงขึ้นมา ที่ช่องซ้ายมือให้เลือกที่ iOIOLibAccessory แล้วที่ช่องขวามือให้เลือกที่ Dependencies

      กดที่ปุ่มเครื่องหมายบวกสีเขียวที่อยู่ขวามือของหน้าต่าง แล้วเลือก File dependency (ถ้าคลิกเลือกไม่ได้ ให้ลองกดปุ่มลูกศรขึ้น/ลงบนคีย์บอร์ดแทน)

 

     เลือกไฟล์ usb.jar ที่อยู่ใน libs แล้วกดปุ่ม OK

 

     จะเห็นว่าในหน้าต่าง Project Structure มี libs/usb.jar เพิ่มเข้ามาใน Dependencies เรียบร้อยแล้ว ให้กดปุ่ม OK

 

      Gradle จะทำการ Build โดยอัตโนมัติ โดยไม่ต้องกดปุ่ม Sync Project with Gradle Files แล้วเออเรอร์ในโปรเจคก็จะหายไปทั้งหมด เพียงเท่านี้โปรเจคก็พร้อมเริ่มต้นสำหรับเขียนแอปพลิเคชันเพื่อใช้งานกับบอร์ด IOIO และ IOIO-Q แล้ว

 

Facebook Comments Box