15 เมษายน 2557

[Android Dev Tips] วิธีแก้ปัญหา Found 2 versions of android-support-v4.jar in the dependency list


        สำหรับปัญหานี้จะเป็นปัญหาเกี่ยวกับการกำหนดไลบรารีให้กับโปรเจคของผู้ที่หลงเข้ามาอ่าน โดยข้อความเออเรอร์จะแจ้งไว้ประมาณนี้


        โดยตัวเนื้อหาจะแจ้งว่าโปรเจคหลักที่กำหนดไลบรารีเป็นโปรเจคอีกตัว ทั้งสองโปรเจคมีไฟล์ android-support-v4.jar เหมือนกัน ทำให้โปรแกรมไม่รู้ว่าจะให้ใช้ไฟล์ jar ตัวไหนดี จึงแสดงข้อความเออเรอร์ดังกล่าวนั่นเอง

        จากตัวอย่างคือเจ้าของบล็อกมีโปรเจคอยู่ด้วยกันสองตัวคือ ActionBar กับ appcompat_v7 โดยที่ ActionBar เป็นโปรเจคแอนดรอยด์ปกติ ส่วน appcompat_v7 เป็นโปรเจคไลบรารีของ ActionBar


        ปัญหานี้เกิดจากการที่โปรเจคที่สร้างขึ้นมา และโปรเจคที่เป็นไลบรารีดันมีตัว android-support-v4.jar ที่อยู่ในโฟลเดอร์ libs ซ้ำกัน แต่ดันเป็นไลบรารีคนละเวอร์ชันกัน



        ดังนั้นจึงใช้วิธีแก้ไขง่ายๆคือ ทำให้มันเป็นเวอร์ชันเดียวกันซะ โดยลบของตัวนึงออกก่อน แล้วก๊อปของอีกตัวมาวางแทนที่ของเก่า

        แต่ทว่าจะลบตัวไหนออกดีล่ะ?

        ถ้าเอาง่ายๆเลยก็ให้ดูรายละเอียดของเออเรอร์ที่แจ้งในหน้าต่าง Console แล้วดูว่าไฟล์ตัวไหนที่มี Length เยอะกว่ากัน (เดาเอาว่าไฟล์ที่ Length เยอะจะเป็นเวอร์ชันใหม่กว่า)


        หมายเหตุ - สำหรับข้อความเออเรอร์ใน Console จะแจ้งซ้ำสองชุด ไม่ต้องแปลกใจว่าข้อความชุดบนกับชุดล่างเหมือนกัน ดังนั้นจะอ้างอิงจากอันไหนก็ได้

        จากตัวอย่างจะเห็นว่าไฟล์ที่อยู่ในโปรเจคที่ชื่อว่า ActionBar น่าจะเป็นเวอร์ชันใหม่กว่าที่อยู่ใน appcompat_v7 ดังนั้นเจ้าของบล็อกก็จะไปลบไฟล์ที่อยู่ใน appcompat_v7 ออก




        แล้วก๊อปไฟล์จากอีกตัวที่เป็นเวอร์ชันล่าสุดมาวางทับซะ



        แล้วเอามาวางไว้ในโฟลเดอร์ libs ของอีกโปรเจคที่ได้ลบทิ้งไปเมื่อครู่นี้ซะ วิธีที่ง่ายสุดก็คือให้คลิกขวาที่โฟลเดอร์ libs แล้ววางไฟล์ซะเลย




        เท่านี้ก็แก้ปัญหาได้แล้ว~





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

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