Android Studio: เพิ่ม jar เป็นไลบรารีหรือไม่


1026

ฉันพยายามใช้ Android Studio ใหม่ แต่ดูเหมือนว่าฉันจะทำงานไม่ถูกต้อง

ฉันใช้ไลบรารีGsonเพื่อทำให้เป็นอนุกรม / deserialize JSON-objects แต่ห้องสมุดก็ไม่ได้รวมอยู่ในโครงสร้าง

ผมได้สร้างโครงการใหม่มีเพียงMainActivity คัดลอกgson-2.2.3.jarในโฟลเดอร์ / libs และเพิ่มเป็นการพึ่งพาไลบรารี (คลิกขวา -> เพิ่มเป็นไลบรารี) ซึ่งรวมถึง jar ใน android studio ดังนั้นจึงสามารถอ้างอิงได้จากไฟล์ต้นฉบับ

เมื่อฉันพยายามเรียกใช้โครงการมันไม่สามารถคอมไพล์ได้ดังนั้นฉันจึงเพิ่ม:

compile files('libs/gson-2.2.3.jar')

เพื่อการอ้างอิงในไฟล์ de .gradle หลังจากนั้นมันก็คอมไพล์อย่างถูกต้อง แต่เมื่อรันแอพพลิเคชั่ClassDefNotFoundException

ไม่มีใครรู้ว่าฉันทำอะไรผิดหรือเปล่า?



1
แม้ว่าวิธีนี้จะไม่สามารถแก้ปัญหาได้ แต่เพียงต้องการชี้ให้เห็นว่า "การคอมไพล์" ถูกเลิกใช้ในความโปรดปรานของ "การใช้งาน"
Amir Rezazadeh

คำตอบ:


1534

ฉันดิ้นรนกับสิ่งเดียวกันหลายชั่วโมงพยายามที่จะทำให้ขวด Gson ทำงานได้ไม่น้อย ในที่สุดฉันก็แตก - นี่คือขั้นตอนที่ฉันทำ:

  1. วางขวด Gson (ในกรณีของฉันgson-2.2.4.jar) ลงในlibsโฟลเดอร์
  2. คลิกขวาและกด 'เพิ่มเป็นห้องสมุด'
  3. ตรวจสอบให้แน่ใจว่าcompile files('libs/gson-2.2.4.jar')อยู่ในbuild.gradleไฟล์ของคุณ(หรือcompile fileTree(dir: 'libs', include: '*.jar')ถ้าคุณใช้ไฟล์ jar หลายไฟล์)

    แก้ไข: ใช้implementation files('libs/gson-2.2.4.jar')(หรือimplementation fileTree(dir: 'libs', include: '*.jar')) ใน Android Studio 3.0+

  4. ทำการ build ที่สะอาด (คุณอาจทำได้ดีใน Android Studio แต่เพื่อให้แน่ใจว่าฉันนำทางในเทอร์มินัลไปยังรูทโฟลเดอร์ของแอพของฉันแล้วพิมพ์gradlew cleanฉันใช้ Mac OS X คำสั่งอาจแตกต่างจากระบบของคุณ

หลังจากที่ฉันทำทั้งสี่ข้อแล้วมันก็เริ่มทำงานได้ดี ฉันคิดว่าขั้นตอน 'เพิ่มเป็นห้องสมุด' เป็นขั้นตอนที่ฉันพลาดไปก่อนหน้านี้และมันไม่ทำงานจนกว่าฉันจะทำความสะอาด

[แก้ไข - เพิ่มbuild.gradleขั้นตอนที่จำเป็นเช่นเดียวกับที่คนอื่น ๆ ชี้]


6
สะอาดมากช่วยฉันด้วย ขอบคุณมาก!
FrantišekŽiačik

171
หากคุณไม่ต้องการเพิ่มบรรทัดสำหรับไฟล์ jar แต่ละไฟล์: compile fileTree(dir: 'libs', include: '*.jar')
J c

65
ฉันขอแนะนำให้ใช้ประโยชน์จากการจัดการการพึ่งพาชั่วคราวของ gradle และดาวน์โหลด gson จาก mavenCentral () (หากต้องการการเชื่อมต่ออินเทอร์เน็ตเป็นที่ยอมรับเพียงแค่เพิ่มrepositories { mavenCentral() }และแทนที่compile files(...)บรรทัดของคุณด้วยcompile 'com.google.code.gson:gson:2.2.4'และ gradle จะดาวน์โหลดและจัดการไฟล์ jar สำหรับคุณโดยอัตโนมัติ ติดตามเฉพาะซอร์สโค้ดไฟล์ไม่ใช่ไลบรารี
Joe

38
ฉันไม่ได้รับตัวเลือกเพิ่มเป็นห้องสมุดในขั้นตอนที่ 2
Yster

6
ใน Android Studio 1.0.2 ไม่จำเป็นต้องใช้ขั้นตอนที่ 2 และ 3 เนื่องจากบรรทัดนี้มีอยู่ในค่าเริ่มต้นแล้วbuild.gradle: คอมไพล์ fileTree (dir: 'libs' รวมถึง: ['* .jar'])
Brian Marick

268

นี่คือคำแนะนำสำหรับการเพิ่มไฟล์ jar ในเครื่องเป็นไลบรารีในโมดูล:

  1. สร้างโฟลเดอร์ 'libs' ในระดับบนสุดของไดเรกทอรีโมดูล (ไดเรกทอรีเดียวกันที่มีไดเรกทอรี 'src')

  2. ในการbuild.gradle fileเพิ่มต่อไปนี้เพื่อให้การปิดการอ้างอิงของคุณมี:

    dependencies {
        // ... other dependencies
        compile files('libs/<your jar's name here>')
    }
  3. Android Studio ควรตั้งค่า wrapper gradlew แล้ว จากบรรทัดคำสั่งนำทางไปยังระดับสูงสุดของโครงการของคุณ (ไดเรกทอรีที่มีgradlewไฟล์)

    ./gradlew assembleวิ่ง สิ่งนี้ควรคอมไพล์โปรเจ็กต์ด้วยไลบรารี คุณอาจต้องแก้ไขข้อผิดพลาดในไฟล์ build.gradle ของคุณตามความจำเป็น

  4. เพื่อให้ Android Studio รับรู้ไฟล์ jar ในตัวเครื่องเป็นห้องสมุดที่ให้การสนับสนุนในขณะที่เข้ารหัสใน IDE คุณต้องทำตามขั้นตอนต่อไปนี้:

    4.1 Open Library Settingsคลิกขวาบนโมดูลในแผงด้านซ้ายมือและเลือก

    4.2 Librariesบนแผงด้านซ้ายของกล่องโต้ตอบให้เลือก

    4.3 คลิกที่+ป้ายเหนือแผงที่สองจากด้านซ้าย ->Java

    เมนู

    4.4 เลือก jar ท้องถิ่นของคุณและเพิ่มลงในโครงการ

  5. คุณอาจต้องเรียกใช้./gradlewคำสั่งด้านบนอีกครั้ง


สิ่งนี้ใช้ได้สำหรับฉัน ฉันมี Android Studio เวอร์ชัน 1.2 Build 141.1890965 บน Ubuntu ทำไมคุณถึงพูดว่า "as of Android Studio 2.5" เป็นรุ่นอื่นใน Windows / Mac หรือไม่ (1a) การค้นหาสิ่งนี้ยาก กล่องคำสั่งผสมอยู่ที่ด้านบนซ้ายของพื้นที่โครงสร้างโครงการ ต้องเลือก "โครงการ" ตรงข้ามกับ "Android" และขยาย "แอป" (1b) ไม่มีตัวเลือก "เพิ่ม" เกิดขึ้น แต่ทำงาน "วาง" (2) ฉันมีบรรทัด "compile fileTree (dir: 'libs', รวม: ['* .jar'])" แต่ยังต้องเพิ่มบรรทัดเดียวของคุณอย่างชัดเจน (4, 5) ไม่จำเป็นเมื่อทำสำเร็จ (3) ขอบคุณ!
Phil Freihofner

"แผงด้านซ้าย"? คุณหมายถึงแผงโครงการหรือไม่ อาจเป็นที่ใดก็ได้ ... กับ Android Studio 2.3.3 ฉันไม่สามารถหาการตั้งค่าห้องสมุด แต่เพิ่มโถไปยังการพึ่งพาในการตั้งค่าโมดูลดูเหมือนจะเป็นเหมือนกัน ...
ม.ค.

สำหรับ mac หากคุณยังไม่ได้ gradle: $ brew ติดตั้ง gradle ถ้าคุณได้รับ "./gradlew: การอนุญาตถูกปฏิเสธ" คุณจะต้องเรียกใช้ $ chmod 755 gradlew จากนั้นคุณสามารถเรียกใช้ $ ./gradlew assemble
Azkario Rizky

110

ในโครงการคลิกขวา

-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done

ติดตามภาพหน้าจอด้านล่าง:

1:

ขั้นตอนที่ 1

2:

ป้อนคำอธิบายรูปภาพที่นี่

3:

ป้อนคำอธิบายรูปภาพที่นี่

คุณจะเห็นสิ่งนี้:

ป้อนคำอธิบายรูปภาพที่นี่


@ CamConnor ฉันก็คิดเช่นนั้น .. คำตอบอื่น ๆ ล้าสมัยแล้ว
Ganesh Pandey

นี่คือคำตอบ
อเลสซานโดร

4
แต่มันไม่เป็นที่รู้จักในฐานะบรรณารักษ์ ตัวอย่างเช่น andriod studio editor: ลองนำเข้าแพ็คเกจใน jar ที่นำเข้าแล้วไม่รู้จัก
เดฟ

ไม่พบวิธีการลบโมดูลที่นำเข้ามาในลักษณะนี้
เดฟ

เหตุใดฉันจึงควรใช้วิธีนี้ในการเพิ่ม jar ภายนอกไม่ใช่คำตอบอื่น ๆ ของวิธีการโฟลเดอร์ "copy-jar-to-libs"
Eido95

48

ใน Android Stuido ฉันชอบใช้ Gradle เพื่อจัดการ Gson lib

เพิ่มการพึ่งพาด้านล่างในไฟล์ build.gradle ของคุณ

repositories {mavenCentral()}

dependencies {compile 'com.google.code.gson:gson:2.2.4'}

ทุกอย่างปกติดี.

คุณยังสามารถดูโพสต์นี้ วิธีที่ดีที่สุดในการรวมห้องสมุดบุคคลที่สามในสตูดิโอ Android


วิธีนี้ดีที่สุดเพราะใช้ maven
Gary Drocella

1
เพียงอย่าลืมอัปเดตหมายเลขเวอร์ชันเป็นล่าสุด :) ณ ตอนนี้คือ 2.3.1 แต่ตรวจสอบลิงก์
Kitalda

47

IIRC เพียงใช้ "เพิ่มเป็นห้องสมุด" ก็ไม่เพียงพอสำหรับการรวบรวมกับโครงการ

ตรวจสอบความช่วยเหลือของ Intellijเกี่ยวกับการเพิ่มห้องสมุดเข้ากับโครงการ

ส่วนที่คุณสนใจมากที่สุดคือ:

(ในFile > Project Structure) เปิดการตั้งค่าโมดูลและเลือกแท็บการพึ่งพา

บนแท็บการอ้างอิงคลิกเพิ่มและเลือกไลบรารี

ในกล่องโต้ตอบเลือกไลบรารีให้เลือกหนึ่งไลบรารีขึ้นไปและคลิกเพิ่มรายการที่เลือก

หากไลบรารีไม่ปรากฏขึ้นในกล่องโต้ตอบให้เพิ่มเข้าไปในการตั้งค่าไลบรารีด้านล่างโมดูล

คุณไม่จำเป็นต้องเพิ่มcompile files()อีกต่อไปและควรเพิ่มไลบรารีในโครงการของคุณอย่างเหมาะสม


เพิ่มเป็นไลบรารี่ที่เพิ่มไลบรารี่ในลักษณะเดียวกัน ดังนั้นฉันคิดว่าผลลัพธ์จะเหมือนกัน ฉันจะลองอีกครั้งในภายหลัง
Ozzie

เพิ่มเป็นห้องสมุดทำสิ่งนี้ได้สำเร็จ - ฉันอยู่ในเรือลำเดียวกันกับคุณชีวิตคู่ - ปัญหาเดียวกันแน่นอน
Jonah H.

เอาล่ะฉันคิดว่าการเพิ่มเป็นไลบรารีจะเพิ่มเฉพาะในรายการไลบรารีและไม่ได้เพิ่มเป็นการอ้างอิงโมดูล
Jukurrpa

เมื่อฉันลองสิ่งนี้ฉันพบว่ามันเพิ่มไฟล์รวบรวม () ลงในไฟล์ build.gradle ของฉัน แต่ดูเหมือนว่าจะใช้พา ธ สัมบูรณ์ไปยังไลบรารี (/libs/foo.jar) ฉันเปลี่ยนสิ่งเหล่านี้เป็นเส้นทางสัมพัทธ์ (libs / foo.jar) ซึ่งแก้ไขปัญหาให้ฉัน
Matt Holgate

40

โซลูชันทั้งหมดเหล่านี้ล้าสมัยแล้ว ตอนนี้มันง่ายจริงๆใน Android Studio:

ไฟล์> โมดูลใหม่ ...

หน้าจอถัดไปดูแปลก ๆ เช่นคุณกำลังเลือกวิดเจ็ตหรือบางอย่าง แต่เก็บไว้ในภาพแรกและด้านล่างเลื่อนแล้วค้นหา "นำเข้า JAR หรือ. AAR Package"

จากนั้นใช้Project Structureจากเมนูไฟล์เลือกappจากหน้าต่างที่เปิดแล้วเลือกdependenciesจากนั้นกดgreen plus buttonเลือกmodule dependencyจากนั้นเลือกโมดูลที่คุณนำเข้าจากนั้นกดOK


ฉันคิดว่าการใช้ maven จะยังคงเป็นทางออกที่ดีกว่าโดยเฉพาะในโครงการขนาดใหญ่ที่จัดหาโดย saneryee
Gary Drocella

2
แม้สิ่งนี้ดูเหมือนว่าจะล้าสมัย เพียงแค่ใส่ไฟล์. jar ของคุณลงในไดเรกทอรี "libs" ของคุณจากนั้นไฟล์นั้นจะถูกรวบรวมเข้ากับโครงการของคุณโดยอัตโนมัติ มีการตั้งค่ากฎเริ่มต้นอยู่แล้วใน Android Studio 1.4 เพื่อรวมไฟล์ * .jar ทั้งหมดจาก "libs" dir
Daniele Testa

35

ขั้นตอนง่ายๆในการเพิ่มไลบรารีภายนอกในAndroid Studio

  1. หากคุณอยู่ในAndroid View ใน project explorer ให้เปลี่ยนเป็นมุมมองโปรเจ็กต์ด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

  1. คลิกขวาที่โมดูลที่คุณต้องการเพิ่มไลบรารีภายนอกจากนั้นเลือกใหม่> Directroyและตั้งชื่อเป็น ' libs '
  2. ตอนนี้คัดลอกblah_blah.jarลงในโฟลเดอร์ ' libs '
  3. คลิกขวาที่ blah_blah.jar แล้วเลือก ' เพิ่มเป็นห้องสมุด .. ' สิ่งนี้จะเพิ่มและป้อนข้อมูลในbuild.gradleเป็นไฟล์คอมไพล์ ('libs / blah_blah.jar')และซิงค์การไล่ระดับสี และคุณทำเสร็จแล้ว

โปรดทราบ:หากคุณใช้ห้องสมุดบุคคลที่สามจะเป็นการดีกว่าถ้าคุณใช้การอ้างอิงที่สคริปต์ Gradle ดาวน์โหลด JAR และ JAR ที่อ้างอิงโดยอัตโนมัติเมื่อรันสคริปต์การไล่ระดับสี

ตัวอย่าง: คอมไพล์ 'com.google.android.gms: play-services-ads: 9.4.0'

อ่านเพิ่มเติมเกี่ยวกับGradle Dependency Mangement


34

'รวบรวมไฟล์ ... ' เคยทำงานให้ฉัน แต่ไม่มีอีกแล้ว หลังจากความเจ็บปวดมากฉันพบว่าการใช้สิ่งนี้แทนได้ผล:

compile fileTree(dir: 'libs', include: '*.jar')

ฉันไม่รู้เลยว่าทำไมถึงสร้างความแตกต่าง แต่อย่างน้อยตอนนี้สิ่งที่น่ารังเกียจกำลังทำงานอยู่


1
วิธีนี้ใช้ได้ผลกับฉัน แต่เมื่อเร็ว ๆ นี้พบว่าบางครั้ง AS ไม่รับขวดใหม่ / ที่อัปเดตจนกว่าคุณจะซิงค์แบบไล่ระดับ
scottyab

เพียงจำไว้ว่า "รวบรวม" ถูกคัดค้านในความโปรดปรานของ "การใช้งาน"
Amir Rezazadeh

17
  1. ดาวน์โหลดไฟล์ Library จากเว็บไซต์
  2. คัดลอกจาก windows สำรวจ
  3. วางไปยังโฟลเดอร์ lib จาก Project Explorer
  4. Ctrl+ Alt+ Shift+Sเปิดโครงสร้างโครงการ
  5. เลือกแท็บการอ้างอิงเพิ่มไฟล์โดยใช้ +
  6. แถบเครื่องมือซิงค์โปรเจ็กต์กับไฟล์ gradle โดยใช้ปุ่ม

นั่นช่วยแก้ไขปัญหาของฉัน ลองถ้าใครต้องการรายละเอียดเพิ่มเติมแจ้งให้เราทราบ


17

ฉันทำให้มันใช้งานได้โดยเพิ่มหนึ่งบรรทัดในbuild.gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
    implementation 'com.google.code.gson:gson:2.3.1'   ----------> I added this one
}

อย่าลืมคลิก Sync nowที่มุมขวาบน

ฉันใช้ Android Studio 1.0.1


คุณจะทำอย่างละเอียดในสิ่งที่fileTreeสายทำ?
Thufir

13

ฉันพบ Dependency Manager ของ Android Studio ค่อนข้างมีประโยชน์และทรงพลังสำหรับการจัดการการพึ่งพาของบุคคลที่สาม (เช่น gson ที่กล่าวถึงที่นี่) ให้คำแนะนำทีละขั้นตอนซึ่งใช้งานได้สำหรับฉัน (หมายเหตุ: ขั้นตอนเหล่านี้ได้รับการทดสอบสำหรับ Android Studio 1.6 และรุ่นต่อไปบนแพลตฟอร์ม Windows)

ขั้นตอนที่ 1: ไปที่ "สร้าง> แก้ไขไลบรารีและอ้างอิง ... " มันจะเปิดกล่องโต้ตอบ "โครงสร้างโครงการ"

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 2: เลือก "แอพ" จากนั้นเลือกแท็บ "การพึ่งพา" จากนั้นเลือก "เพิ่ม> 1 การขึ้นต่อกันของไลบรารี"

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 3: ช่องโต้ตอบ "เลือกห้องสมุดอ้างอิง" จะปรากฏขึ้นระบุ "gson" ในการค้นหาและกดปุ่ม "ค้นหา"

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 4: การอ้างอิงที่ต้องการจะปรากฏในรายการค้นหาเลือก com.google.code.gson: gson: 2.7 (นี่เป็นรุ่นล่าสุดในขณะที่ฉันเขียนคำตอบ) กดตกลง

ป้อนคำอธิบายรูปภาพที่นี่

กดตกลงบนกล่องโต้ตอบ "โครงสร้างโครงการ" Gradle จะอัปเดตสคริปต์การสร้างของคุณตามลำดับ

ป้อนคำอธิบายรูปภาพที่นี่

หวังว่านี่จะช่วยได้ :)


ฉันพบปัญหาบางอย่างเกี่ยวกับวิธีการนี้กำลังทำงานกับแอพที่ใช้คอมมอนส์ -io-2.5 เมื่ออัปโหลดแอปไปยัง Google Developer Console มันจะแสดงอุปกรณ์ที่รองรับ apk ที่ลงชื่อแล้ว หลังจากการตรวจสอบอย่างละเอียดถี่ถ้วนฉันคิดว่าฉันต้องวางไฟล์ jar ภายใต้ app / libs / commons-io-2.5.jar และอัปเดตการอ้างอิงใน gralde เช่นนี้ 'ไฟล์รวบรวม (' libs / commons-io-2.5.jar ') 'ไม่แน่ใจว่าฉันทำอะไรผิดที่นี่และทำไมเอกสารไม่ครอบคลุม
AB

นี่คือวิธีการทำงาน คำตอบอื่น ๆ ทั้งหมดไม่ทำงาน Android Studio 2.3.3
imsrgadich

11

1.วางขวด (ในกรณีของฉันgson-2.2.4.jar) ลงในโฟลเดอร์ libs

2.ตรวจสอบให้แน่ใจว่าไฟล์คอมไพล์ ( libs/gson-2.2.4.jar) อยู่ในไฟล์ build.gradle ของคุณ

3.ตอนนี้คลิกที่ "Sync Project with Gradle files" (จากซ้ายไปปุ่มผู้จัดการ AVD บนแถบด้านบน)

หลังจากที่ฉันทำสามข้อข้างต้นมันก็เริ่มทำงานได้ดี


9

ดาวน์โหลดและคัดลอก.jarไฟล์ของคุณในlibsโฟลเดอร์จากนั้นเพิ่มบรรทัดเหล่านี้ไปยัง build.gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.code.gson:gson:2.3.1'
}

อย่าลืมคลิก "ซิงค์เลย"


9

คุณสามารถทำได้ด้วยสองตัวเลือก

วิธีแรกง่ายๆ

คัดลอกไฟล์. jar ไปยังคลิปบอร์ดแล้วเพิ่มลงในโฟลเดอร์ libs หากต้องการดูโฟลเดอร์ libs ในโครงการให้เลือกโครงการจาก combobox ด้านบนโฟลเดอร์

จากนั้นคลิกขวาที่ไฟล์. jar และคลิกเพิ่มเป็นไลบรารีจากนั้นเลือกโมดูลจากนั้นตกลง คุณสามารถดูไฟล์. jar ในไฟล์ build.gradle ภายในบล็อกการพึ่งพา

 dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:21.0.3'
        implementation project(':okhttp-2.0.0')
        implementation 'com.google.code.gson:gson:2.3.1'
    }

วิธีที่สองคือ: เราสามารถเพิ่มไฟล์. jar ไปยังโมดูลโดยนำเข้าไฟล์. jar นี้เป็นโมดูล. jar แล้วเพิ่มโมดูลนี้ไปยังโมดูลใด ๆ ที่เราต้องการ

โมดูลนำเข้า ---> เลือกไฟล์. jar ของคุณ -> มากกว่าการนำเข้าเป็น. jar - ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นกด CTRL + ALT + SHIFT + S -> sturure โครงการ -> เลือกโมดูลที่คุณต้องการ ato เพิ่ม jar -> Dependencendies -> Module Dependency build.gradle ของโมดูลจะอัปเดตโดยอัตโนมัติ ป้อนคำอธิบายรูปภาพที่นี่


ดี การแก้ไขเดียว - เป็น "โมดูลใหม่" ทันที (Android Studio 1.0.1) "โมดูลนำเข้า" จะส่งคุณไปยังตัวช่วยสร้างอื่น ..
Aviv Ben Shabat

7

ฉันทำไปแล้ว3 ขั้นตอนและมันมีเสน่ห์สำหรับฉัน

(ฉันใช้ Android Studio 2.1.2)

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 1

  • เพิ่มของคุณชื่อแพคเกจขวด (เป็นตัวอย่างcompile 'com.squareup.okhttp3:okhttp:3.3.1') ลงสร้างสคริปต์ gradle ภายใต้build.gradle (Module: แอป)

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 2: คลิกขวาที่โฟลเดอร์แอพ-> ใหม่ -> โมดูล

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 3:คลิกนำเข้า JAR / .AAR แพ็คเกจจากนั้นเรียกดูแพ็คเกจของคุณ เป็นตัวอย่าง: OkHttp.jar

ป้อนคำอธิบายรูปภาพที่นี่


7

ด้วย Android Studio 3+:

คุณควรจะสามารถคัดลอกไฟล์ jar ไปยังโฟลเดอร์ libs ได้จากโฟลเดอร์แอพ

... myproject \ app \ libs \ myfile.jar

จากนั้นเลือกไฟล์โครงการจากรายการแบบหล่นลงในหน้าต่างโครงการคลิกขวาที่โครงการเลือกซิงโครไนซ์เพื่อดูไฟล์ในไฟล์โครงการ มันจะเพิ่มการอ้างอิงในไฟล์ gradle โดยอัตโนมัติ (โมดูล: แอพ)

dependencies {
...
    implementation files('libs/myfile.jar')

นี่คือทางออกอื่น:

ไปที่มุมมองไฟล์โครงการ (เลือกไฟล์โครงการจากดรอปดาวน์)

ป้อนคำอธิบายรูปภาพที่นี่

เลือกไดเรกทอรีใหม่ ... สร้างโฟลเดอร์ชื่อ libs ใต้แอป

ป้อนคำอธิบายรูปภาพที่นี่

เปิด File Explorer คัดลอกและวางไฟล์ jar ของคุณลงในโฟลเดอร์ libs

ใน Android Studio คลิกขวาที่ไฟล์ jar แล้วเลือกเพิ่มเป็นห้องสมุด ... จากเมนูป๊อปอัพ

ป้อนคำอธิบายรูปภาพที่นี่

คุณควรเห็นไฟล์ที่แสดงอยู่ในรายการการพึ่งพาในไฟล์ gradle:

dependencies {
...
    implementation files('libs/myfile.jar')
}

เปิดไฟล์ java ของคุณและเพิ่มคำสั่งการนำเข้าที่นั่น:

import com.xxx.xxx;

7

ใส่.jarไฟล์ในlibsโฟลเดอร์ของโครงการ Android

จากนั้นเพิ่มรหัสบรรทัดนี้ในไฟล์ gradle ของแอป:

    compile fileTree(dir: 'libs', include: ['*.jar'])

สำหรับ Android gradle plugin 3.0 และใหม่กว่าจะใช้สิ่งนี้แทน:

    implementation fileTree(dir: 'libs', include: ['*.jar'])

7

ไม่เหมือนกับ Eclipse เราไม่จำเป็นต้องดาวน์โหลด jar และวางไว้ในโฟลเดอร์ / libs Gradle จัดการสิ่งเหล่านี้เราเพียงแค่ต้องเพิ่มการพึ่งพา Gradle, Gradle ดาวน์โหลดมันและใส่ใน gradle cache

เราจำเป็นต้องเพิ่มการพึ่งพาเป็น:

การพึ่งพา {การนำไปใช้งาน 'com.google.code.gson: gson: 2.2.4'}

อย่างไรก็ตามเราสามารถดาวน์โหลด jar & เพิ่มเป็นไลบรารีได้ แต่วิธีปฏิบัติที่ดีที่สุดคือการเพิ่มการพึ่งพา Gradle



5

ขั้นตอนที่ 1: ตอนนี้ภายใต้ของapp folderคุณคุณควรเห็นlibsถ้าคุณไม่เห็นมันแล้วสร้างมันแล้วสร้างมันขึ้นมา

ขั้นตอนที่ 2: Drag & Drop the .jar file hereคุณอาจได้รับพรอมต์"This file does not belong to the project"เพียงคลิกOKปุ่ม

ขั้นตอนที่ 3: ตอนนี้คุณควรเห็นไฟล์ jar ภายใต้โฟลเดอร์ libsคลิกขวาที่ไฟล์ jar และเลือก"Add as library", Click OK for prompt "Create Library"

ขั้นตอนที่ 4: ตอนนี้jarนี้ถูกเพิ่มเข้ามา

ป้อนคำอธิบายรูปภาพที่นี่


4

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


4

1) สร้างโฟลเดอร์ 'your_libs' ภายในโฟลเดอร์ Project / app / src

2) คัดลอกไฟล์ jar ของคุณไปยังโฟลเดอร์ 'your_libs' นี้

3) ใน Android Studio ไปที่ File -> โครงสร้างโครงการ -> Dependencies -> Add -> File Dependency และไปที่ไฟล์ jar ของคุณซึ่งควรอยู่ภายใต้ 'src / your_libs'

3) เลือกไฟล์ jar ของคุณแล้วคลิก 'ตกลง'

และจากนั้นคุณสามารถเห็นบน build.gradle ของคุณเช่นนี้: รวบรวมไฟล์ ('src / your_libs / your.jar')


4

ใน android Studio 1.1.0 ฉันแก้ไขคำถามนี้โดยทำตามขั้นตอน:

1: ใส่ไฟล์ jar ในไดเร็กทอรี libs (ใน Finder)

2: เปิดการตั้งค่าโมดูลไปที่การพึ่งพาที่มุมล่างซ้ายมีปุ่มบวก คลิกปุ่มบวกจากนั้นเลือก "การพึ่งพาไฟล์" ที่นี่คุณจะเห็นไฟล์ jar ของคุณ เลือกและแก้ไขแล้ว


4

ฉันได้อ่านคำตอบทั้งหมดที่นี่และพวกเขาดูเหมือนจะครอบคลุม Android Studio เวอร์ชันเก่า!

ด้วยโปรเจ็กต์ที่สร้างด้วย Android Studio 2.2.3 ฉันแค่ต้องการสร้างlibsไดเรกทอรีภายใต้appและวางขวดไว้ที่นั่น ฉันทำเช่นนั้นกับตัวจัดการไฟล์ของฉันไม่จำเป็นต้องคลิกหรือแก้ไขอะไรใน Android Studio

ทำไมถึงใช้งานได้ เปิดBuild / Edit Libraries และ Dependenciesแล้วคุณจะเห็น:

{include=[*.jar], dir=libs}

3

บน Mac OS X:

  1. เพิ่ม jar เป็นไลบรารี (ลาก jar ไปยัง libs คลิกขวาที่เพิ่มเป็น lib)

  2. เพิ่มคำสั่งการรวบรวมไปยัง build.grade

  3. ติดตั้งgradle v1.6(ใช้ homebrew)

    • ชงติดตั้ง gradle
    • gradle -v
    • ถ้าไม่ใช่ v1.6 ให้อัพเกรด homebrew
  4. gradle clean (สร้าง android ไม่ทำงาน)

นี่ฉันเรียงออก


3

เช่นเดียวกับหลายคนก่อนที่จะชี้ให้เห็นคุณจะเพิ่ม

compile files('libs/gson-2.2.3.jar') 

ไปที่ไฟล์ build.gradle ของคุณ

อย่างไรก็ตามฉันมีโครงการใน Android Studio ที่ย้ายมาจาก Eclipse และในกรณีนี้โฟลเดอร์ "libs" ชื่อ "lib" ดังนั้นสำหรับฉันที่จะลบ "s" เพื่อแก้ไขปัญหา


3
  1. เพิ่มlibsโฟลเดอร์ที่ระดับappโฟลเดอร์ที่ระดับ
  2. เพิ่มทั้งหมดjarsในโครงการนี้
  3. ถัดไปเลือกขวดทั้งหมดในlibsโฟลเดอร์
  4. คลิกขวาที่รายการที่เลือกและพูด add library
  5. จากนั้นคุณจะพบตัวเลือกการขยายตัวของไห

ฉันสังเกตCTRL+ ALT+ SHIFT+ S-> โครงสร้างโครงการ -> app-module -> Dependencies "แล้วมีรายการเป็น(dir: 'libs', include: '*.jar')ภายใต้compile-optionเริ่มต้นและหลังจากเพิ่มขวดตามขั้นตอนที่ระบุข้างต้นbuild.gradleได้รับรายการสำหรับการเพิ่มใหม่ ขวดของตัวเอง


3

ในAndroid Studio 2.1ฉันทำตามวิธีนี้

แอปไปที่ -> src-> หลัก -> สินทรัพย์โฟลเดอร์ (ถ้าไม่ได้สร้างมันขึ้นมาใช้ได้) -> ใส่ไฟล์ JAR ของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

ใน build.gradle ของคุณเพิ่มการพึ่งพาเช่นนี้

implementation files('src/main/assets/jsoup.jar')
implementation files('src/main/assets/org-apache-xmlrpc.jar')
implementation files('src/main/assets/org.apache.commons.httpclient.jar')
implementation files('src/main/assets/ws-commons-util-1.0.2.jar')

ซิงค์ทันที ตอนนี้ไฟล์ JAR ของคุณพร้อมใช้งานแล้ว


ทำไมคุณไม่ใช้ไดเรกทอรี libs
Deni Erdyneev

@ErdeniErdyneev ฉันให้วิธีการอื่นในการจัดเก็บไฟล์ jar ทำไมฉันไม่ใช้สินทรัพย์ ปัญหาใดในแนวทางของฉัน ฉันพร้อมที่จะแก้ไขข้อผิดพลาดหากฉันผิด
Ranjith Kumar

3

สำหรับ Android รุ่นใหม่ 1.0.2 ต่อไปนี้มีอยู่แล้วในไฟล์ build.gradle ของคุณ

implementation fileTree(include: ['*.jar'], dir: 'libs')

เพิ่มโถไลบรารีไปยังโฟลเดอร์ libs ของคุณ -> คลิกขวาที่ไลบรารี -> คลิกเพิ่มเป็นห้องสมุด -> มันขอให้คุณสำหรับโครงการที่จะเพิ่มมัน -> เลือกโครงการของคุณ -> คลิกตกลงบรรทัดต่อไปนี้จะถูกเพิ่มโดยอัตโนมัติเพื่อสร้าง .gradle

implementation files('libs/android-query.jar')

นั่นทำเพื่อฉัน ไม่ต้องการอะไรอีกแล้ว ฉันได้แสดงสิ่งนี้สำหรับ Android aquery ห้องสมุดบุคคลที่สามอีกแห่งสำหรับ Android


2

คำตอบของฉันคือการรวบรวมคำตอบที่ถูกต้อง แต่ไม่ครบถ้วนที่ให้ไว้ข้างต้น

  1. เปิด build.gradle
  2. เพิ่มรายการต่อไปนี้:

    dependencies {
    compile 'com.android.support:appcompat-v7:19.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.3'
    }

    สิ่งนี้จะช่วยให้สามารถรองรับการเพิ่มการพึ่งพาได้สองวิธี compile fileTree(dir: 'libs', include: ['*.jar'])(ตามที่กล่าวถึง @Binod) บอกคอมไพเลอร์ที่จะมองภายใต้ libs โฟลเดอร์สำหรับขวดใด ๆ เป็นวิธีปฏิบัติที่ดีในการสร้างโฟลเดอร์ 'libs' ซึ่งจะมีแพ็กเกจ jar ที่แอปพลิเคชันของเราต้องใช้

แต่สิ่งนี้จะอนุญาตการสนับสนุนการพึ่งพา Maven การคอมไพล์'com.google.code.gson:gson:2.3' (ดังที่ได้รับการกล่าวถึงโดย @saneryee) เป็นอีกวิธีที่แนะนำในการเพิ่มการพึ่งพาที่อยู่ในที่เก็บระยะไกลส่วนกลางและไม่ได้อยู่ใน / libs "local repository" ของเรา โดยพื้นฐานแล้วมันบอกให้ gradle หาเวอร์ชั่นของแพ็คเกจนั้นและมันบอกให้คอมไพเลอร์พิจารณาเมื่อทำการคอมไพล์โปรเจ็กต์ (มีอยู่ใน classpath)

PS: ฉันใช้ทั้งคู่

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