Jar ไม่ตรงกันพบ android-support-v4.jar 2 เวอร์ชันในรายการอ้างอิง


130

ฉันกำลังพยายามสร้างแอป Android 2 เวอร์ชัน (ฟรี / เสียเงิน) ฉันมี Android Library ที่มีไฟล์ทั่วไปสำหรับทั้งสองอย่าง ฉันสร้างโครงการ Android ใหม่และพยายามใช้ Library แต่ได้รับข้อผิดพลาดด้านล่าง:

Found 2 versions of android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.
Versions found are:
Path: /Users/Zaheer/Developer/App Free/libs/android-support-v4.jar
    Length: 349252
    SHA-1: 612846c9857077a039b533718f72db3bc041d389
Path: /Users/Zaheer/Developer/App Library/libs/android-support-v4.jar
    Length: 337562
    SHA-1: 27c24d26e4c5d57976e6926367985548678e913c

มีความคิดเห็นเกี่ยวกับวิธีแก้ไขปัญหานี้อย่างไร ฉันเล่นกับเส้นทางการสร้างที่ไม่ประสบความสำเร็จ


ฉันพบวิธีง่ายๆที่ใช้ได้ในสถานการณ์เช่นนี้ตรวจสอบคำตอบของฉันด้านล่าง
gprathour

คำตอบ:


177

มีความคิดเห็นเกี่ยวกับวิธีแก้ไขปัญหานี้อย่างไร

ลบอย่างใดอย่างหนึ่ง

ฉันเล่นกับเส้นทางการสร้างที่ไม่ประสบความสำเร็จ

ขั้นตอนที่ # 1: เลิกทำทั้งหมดนั้น หากคุณกำลังยุ่งกับเส้นทางการสร้างบน R16 หรือเวอร์ชันที่สูงกว่าของปลั๊กอิน ADT สำหรับ Eclipse คุณกำลังทำผิด

ขั้นตอนที่ 2: เลือกหนึ่งในสองเวอร์ชันของ JAR หรือเลือกจากส่วน "พิเศษ" ของการติดตั้ง SDK ของคุณ

ขั้นตอนที่ # 3: ใส่ JAR ที่ถูกต้อง App Libraryใส่ขวดที่เหมาะสมในการ

ขั้นตอนที่ # 4: ลบหนึ่งจากApp Freeเนื่องจากจะรับ JAR นั้นจากApp Libraryจาก

คุณสามารถมีไฟล์ JAR จริงที่เหมือนกันได้ในทั้งสองจุด ( App FreeและApp Library) แม้ว่าจะใช้พื้นที่เพิ่มโดยไม่มีเหตุผลก็ตาม


1
@Necronet: ใช้ JAR เดียวกันทั้งหมด ตัวอย่างเช่นคัดลอกรายการล่าสุดลงในแต่ละโครงการ
CommonsWare

@CommonsWare: จะรู้ได้อย่างไรว่าอันไหนล่าสุด?
Mehul Joisar

2
@MehulJoisar: ขึ้นอยู่กับผู้เขียน JAR ในกรณีของการandroid-support-v4.jarติดตั้ง SDK ของคุณล่าสุด
CommonsWare

5
@MehulJoisar: ฉันไม่สามารถตอบได้ ฉันมักจะใช้ข้อมูลล่าสุดandroid-support-v4.jarจาก SDK และคัดลอกลงในโครงการไลบรารีทั้งหมด (บวกลบรายการออกจาก SDK)
CommonsWare

1
ฉันเพิ่งมีปัญหานี้ แต่ดูเหมือนว่าจะออกมาเป็นสีน้ำเงินอย่างสมบูรณ์เนื่องจากปัญหา Eclipse / Android อื่น ๆ (ยากกว่า) มี คำตอบนี้ช่วยแก้ไขผล แต่ดูเหมือนจะไม่ใช่สาเหตุ
Joe Lapp

24
  1. ลบ android-support-v4.jar จาก App Free
  2. เพิ่มไฟล์เดียวกันจาก App Library ไปยัง App Free

@ ลีชอนโฮบอกฉันได้ไหมว่าจะไปเส้นทางนี้ใน MAC OS ได้อย่างไร ฉันต้องการลบ android-support-v4.jar
Rakesh

@Rakesh ใน Eclipse Package Explorer ขยายโปรเจ็กต์ของคุณภายใต้โฟลเดอร์ libs ลบไฟล์ android-support-v4.jar นั้น
Lee Chun Hoe

12

วิธีแก้ปัญหาข้างต้นส่วนใหญ่แก้ปัญหาได้ หลังจากใช้วิธีแก้ไขปัญหาเหล่านี้แล้วปัญหายังคงมีอยู่ แล้วก็

ไปที่โฟลเดอร์โครงการ -> libs-> และลบ "android-support-v4.jar"

หวังว่ามันจะแก้ปัญหาของคุณได้เพราะมันช่วยแก้ปัญหาของฉันได้


11

มีบางสถานการณ์ที่คุณมีโครงการไลบรารีหลายโครงการที่มีเส้นทางandroid-support-v4.jarในlibsและสร้างและโครงการของคุณมีการพึ่งพาทั้งสองโครงการ ตัวอย่างเช่นในกรณีของฉันฉันมีโครงการไลบรารีต่อไปนี้ในพื้นที่ทำงานของฉัน

  • libfacebook
  • libsherlockactionbar

ทั้งสองโครงการนี้เป็นอิสระและproject.propertiesมีลักษณะของฉันดังต่อไปนี้

# Project target.
target=android-17
android.library.reference.1=../libfacebook
android.library.reference.2=../libsherlockactionbar

เมื่อฉันสร้างโปรเจ็กต์ของฉันฉันได้รับปัญหาที่ไม่ตรงกันของ jar ที่มีการอ้างอิงซ้ำกับสองสำเนาของไฟล์เดียวกัน สิ่งที่ฉันทำเพื่อแก้ปัญหานี้เป็นกลอุบายเล็กน้อย ฉันสร้างโครงการห้องสมุดใหม่ที่ชื่อว่าlibcommonsเป็นผู้ปกครองทุกอื่น ๆห้องสมุดโครงการในพื้นที่ทำงานของฉันรวมทั้งและlibfacebook libsherlockactionbarจากนั้นฉันออกห้องสมุดการสนับสนุนจากโครงการอื่น ๆ ทั้งหมดและเก็บสำเนาเดียวเท่านั้นภายในlibcommons's libsโฟลเดอร์ จากนั้นฉันได้เพิ่มlibcommonsเป็นข้อมูลอ้างอิงสำหรับโครงการห้องสมุดอื่น ๆทั้งหมดของฉัน เมื่อทำความสะอาดพื้นที่ทำงานของฉันแล้วทุกอย่างก็เหมือนมีเสน่ห์


8

นี่เป็นการแก้ไขที่สวยงามกว่าการลบและเพิ่มไฟล์!

คุณเพียงแค่ต้อง:

  1. คลิกขวาที่แอปโครงการฟรี
  2. ไปที่ "เครื่องมือ Android"> "เพิ่มไลบรารีการสนับสนุน"
  3. อนุมัติสิทธิ์และปล่อยให้อัปเดตไลบรารี
  4. ทำซ้ำขั้นตอนนี้สำหรับไลบรารีแอปของโครงการ

จากนั้นไลบรารีการสนับสนุน Android จะซิงค์กัน (:


ขอบคุณ - สิ่งนี้ช่วยแก้ปัญหาของฉันได้ ฉันต้องเพิ่ม BaseGameUtils และได้รับข้อผิดพลาดนี้ :)
neowhoru

@neowhoru ไม่มีปัญหา! ดีใจที่ได้แบ่งปัน ~
cokeby190

1
ดีใจที่ได้ช่วย @MuhammedRefaat! (:
cokeby190

7

วิธีแก้ปัญหาที่ง่ายมาก

วิธีแก้ปัญหาที่ง่ายมากสำหรับกรณีของฉันเพียงแค่คัดลอกไฟล์ jar (android-support-v4.jar) เดียวกันไปยังโครงการทั้งหมด จะไม่มีความขัดแย้งอีกต่อไป

1 คัดลอกไฟล์ jar android-support-v4.jar จากโฟลเดอร์ libs ของโครงการใดโครงการหนึ่ง

2 ลบไฟล์ jar android-support-v4.jar จากโฟลเดอร์ libs ของโปรเจ็กต์ที่สองที่มีอยู่แล้ว

3 วางไฟล์ jar ที่คัดลอกใหม่ของโปรเจ็กต์แรกไปยังโฟลเดอร์ libs ของโปรเจ็กต์ที่สอง

ปัญหาโถไม่ตรงกันจะได้รับการแก้ไขในตอนนี้


5

เพียงคัดลอกไลบรารีจากโครงการหนึ่งไปยังอีกโครงการหนึ่ง การประทับเวลาอาจจะต้องเหมือนกันทั้งสองอย่าง


4

ความละเอียด:

  1. คลิกขวาที่โครงการ 'ฟรี'> เครื่องมือ Android> เพิ่มไลบรารีการสนับสนุน
  2. ทำสิ่งเดียวกันกับโครงการ "จ่าย"
  3. ทำความสะอาดโครงการทั้งหมด

2

ตรวจสอบว่ามีโครงการที่ไม่เกี่ยวข้องเปิดอยู่สำหรับคุณหรือไม่เพราะเป็นกรณีของฉันดูเหมือนว่าไฟล์ JAR ไฟล์หนึ่งเกี่ยวข้องกับโปรเจ็กต์อื่นซึ่งฉันไม่ได้ทำงานด้วยดังนั้นฉันจึงเพิ่งปิดโปรเจ็กต์นั้นทำความสะอาด สร้างโครงการที่ฉันกำลังทำอยู่และไม่มีปัญหาอีกต่อไป! หวังว่านี่จะช่วยใครสักคน!



1

ดี .. มันได้ผลสำหรับฉัน:

ไปที่

โฟลเดอร์โครงการ> libs

จากนั้นลบ "android-support-v4.jar"

แล้วก็

โครงการ> ทำความสะอาด

มันจะทำงาน!


1

ฉันเพิ่งมีปัญหานี้ แต่แทนที่จะลบandroid-support-v4.jar ที่ขัดแย้งกันฉันเพิ่งเปลี่ยนชื่อเป็นandroid-support-v4_PROJECT.jarซึ่งลบความขัดแย้ง

หากคุณสงสัยว่าจะเปลี่ยนชื่อไฟล์ใน Eclipse ได้อย่างไรคุณเพียงแค่ต้องไฮไลต์ไฟล์แล้วกด F2


0

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

ไม่มีอะไรให้ทำสะอาดและสนุก :)


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.