การเพิ่มไลบรารีภายนอกใน Android Studio


119

ฉันต้องการเพิ่มไลบรารีภายนอกhttps://github.com/foursquare/foursquare-android-oauthลงในแอปพลิเคชัน Android ของฉัน (ฉันใช้ Android Studio คำแนะนำที่ได้รับจากผู้เขียน lib สำหรับ Eclipse ใช้ไม่ได้กับ Android Studio)

ฉันได้ลองทำด้วย maven แล้วดังนั้นใน File-> Project Structure-> Dependencies ฉันได้เพิ่มcom.foursquare:foursquare-android-nativeoauth-lib:1.0.0แต่ Gradle Sync ล้มเหลว:

Error:Failed to find: com.foursquare:foursquare-android-nativeoauth-lib:1.0.0

เมื่อฉันพยายามสร้างแอปของฉัน (โดยไม่แก้ไขข้อผิดพลาดข้างต้นเพราะฉันไม่รู้วิธี) ฉันได้รับ:

Error:A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
> Could not resolve com.foursquare:foursquare-android-nativeoauth-lib:1.0.0.
 Required by:
    ForSquaresOnly:app:unspecified
   > Could not parse POM http://jcenter.bintray.com/com/foursquare/foursquare-android-nativeoauth-lib/1.0.0/foursquare-android-nativeoauth-lib-1.0.0.pom
     > Could not find any version that matches com.foursquare:parent:1.0.0.

วิธีอื่นในการนำเข้า lib นี้หรือไม่ ฉันสามารถคัดลอกและวางซอร์สโค้ดลงในซอร์สโค้ดของฉันหรือสร้าง JAR จากมันได้?

BTW: หากคุณพบปัญหาดูคำถามนี้ (ฉันมีปัญหานี้หลังจากนำเข้า): การควบรวม Manifest ล้มเหลว: use-sdk: minSdkVersion 14


1
นี้จะช่วยให้คุณstackoverflow.com/questions/16588064/... androidsx.com/...
jackgris

คำตอบ:


96

ลองสิ่งนี้:

File> Project Structure> Dependencies Tab> Add module dependency( scope = compile)

โดยที่การพึ่งพาโมดูลคือโฟลเดอร์ไลบรารีโครงการ Android


2
ฉันรู้โดยประสบการณ์และการตรวจสอบ .... แต่มีเอกสารอยู่: developer.android.com/sdk/installing/studio-build.html
malcubierre

26
สามารถทำได้อย่างไรโดยไม่ต้องคัดลอก? ไลบรารีถูกใช้โดยโปรเจ็กต์อื่น ๆ ที่ไม่ใช่ Android และได้รับการอัปเดตเป็นประจำ หากคัดลอกแหล่งที่มาจะไม่เห็นการเปลี่ยนแปลงกับต้นฉบับ แบบนั้นไม่โง่เหรอ?
Brian Reinhold

1
ตัวเลือกโครงสร้างโครงการอยู่ที่ไหน
zulkarnain shah

2
พบการพึ่งพาโมดูลตูด แต่ฉันได้รับข้อความ "เลือกโมดูล \ n เลือกโมดูลที่โมดูลปัจจุบันควรขึ้นอยู่กับ: \ n ไม่มีอะไรจะแสดง \ n [ตกลง] [ยกเลิก]" ไม่สามารถเลือกไลบรารีที่ดาวน์โหลด
David162795

1
ฉันได้เพิ่มไลบรารีภายนอกด้วยวิธีนี้และได้รับข้อผิดพลาด "ไม่สามารถแก้ไขการอ้างอิงสำหรับ": app @ buildTypeUnitTest / compileClasspath ": ไม่สามารถแก้ไข project: zip_file" รหัสที่สร้างขึ้นในการอ้างอิงคือ `` การดำเนินโครงการ (': zip_file')“ นอกจากนี้ฉันใช้ 'com.android.tools.build:gradle:3.2.0-rc03' และ https \: //services.gradle.org/distributions/gradle-4.6-all.zip
Nikola

209

ลองใช้วิธีใดวิธีหนึ่งต่อไปนี้:

แนวทาง 1)

1- เลือกมุมมองโครงการ

ใส่คำอธิบายภาพที่นี่

2- คัดลอกไฟล์ JAR ของคุณในแอพ -> โฟลเดอร์ lib

ใส่คำอธิบายภาพที่นี่

3- คลิกขวาที่ไฟล์ JAR ของคุณแล้วเลือกเพิ่มเป็นไลบรารี

ใส่คำอธิบายภาพที่นี่ ใส่คำอธิบายภาพที่นี่

4- ตรวจสอบใน build.gradle

ใส่คำอธิบายภาพที่นี่


แนวทางที่ 2)

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

ใส่คำอธิบายภาพที่นี่

2- นำเข้าแพ็คเกจ. JAR / .AAR

ใส่คำอธิบายภาพที่นี่

3- เรียกดูไฟล์ JAR ของคุณ

ใส่คำอธิบายภาพที่นี่

4- เสร็จสิ้น

5- ไฟล์ -> โครงสร้างโครงการ -> การอ้างอิง

ใส่คำอธิบายภาพที่นี่

6- คุณควรคลิกที่ปุ่ม + จากนั้นคลิกที่การพึ่งพาโมดูล

ใส่คำอธิบายภาพที่นี่

7- คุณจะเห็นห้องสมุดของคุณที่นี่

ใส่คำอธิบายภาพที่นี่

8- เลือกห้องสมุดของคุณแล้วคลิกตกลง

ใส่คำอธิบายภาพที่นี่

9- จากนั้นคุณจะเห็นว่ามีการเพิ่มห้องสมุดของคุณ

ใส่คำอธิบายภาพที่นี่


สำหรับสองวิธีแรกคุณต้องมีไฟล์ JAR คุณสามารถค้นหาhttp://search.maven.org/เพื่อค้นหาไฟล์ JAR ที่เกี่ยวข้องกับ Android ตัวอย่างเช่นนี่คือผลการค้นหา jdom ในลิงค์นี้

ผลการค้นหา jdom


แนวทางที่ 3) Android ใช้http://jcenter.bintray.com/เป็นห้องสมุดระยะไกล ตัวอย่างเช่นนี่คือผลการค้นหา jdom ในลิงค์

jcenter jdom

หากต้องการเพิ่มห้องสมุดในแนวทางนี้โปรดปฏิบัติตามขั้นตอนเหล่านี้:

1- ไฟล์ -> โครงสร้างโครงการ -> การอ้างอิง

ใส่คำอธิบายภาพที่นี่

2- คลิกที่ปุ่ม + และเลือกการพึ่งพาไลบรารี

ใส่คำอธิบายภาพที่นี่ ใส่คำอธิบายภาพที่นี่

3- ค้นหาห้องสมุดของคุณและเลือกจากนั้นคลิกตกลง


ฉันหวังว่ามันจะช่วยได้


13
คำตอบที่ดีที่สุดใน stack overflow ทั้งหมด
mizerablebr

1
ฉันดีใจที่คุณพบว่าคำตอบของฉันมีประโยชน์ ฉันขอขอบคุณสำหรับความคิดเห็นของคุณ
โมฮัมหมัด

1
Approche 2 ใช้ได้ผลสำหรับฉัน ขอบคุณภาพประกอบ :)
Hichem Acher

1
คุณยินดีอย่างมาก. ฉันดีใจที่โพสต์นี้ช่วยคุณได้
โมฮัมหมัด

1
ฉันไม่ได้รับตัวเลือกเพิ่มเป็นห้องสมุดในขั้นตอนที่ 3 ใน Android Studio 3.0.1 ของฉัน
Shylendra Madda

28

หากต้องการอ้างอิงโปรเจ็กต์ lib ภายนอกโดยไม่ต้องคัดลอกให้ทำสิ่งนี้: - แทรก 2 บรรทัดนี้บนsetting.gradle:

  include ':your-lib-name'
  project(':your-lib-name').projectDir = new File('/path-to-your-lib/your-lib-name)

แทรกบรรทัดนี้ตามส่วนการอ้างอิงของbuild.gradleไฟล์:

compile project(':your-lib-name')

ซิงค์โครงการ


1
คำตอบที่ดีสร้างลิงก์ไปยังไลบรารีเดิมเพื่อที่คุณจะได้ไม่ต้องนำเข้าใหม่เมื่อใดก็ตามที่รหัสห้องสมุดมีการเปลี่ยนแปลง!
diman

21

มีสองวิธีที่ง่ายที่สุดหากวิธีหนึ่งไม่ได้ผลโปรดลองอีกวิธีหนึ่ง

  1. เพิ่มการอ้างอิงของไลบรารีภายในการพึ่งพาภายในbuild.gradleไฟล์ของไลบรารีที่คุณใช้และวางไลบรารีของคุณในไลบรารีภายนอก

หรือ

  1. เพียงไปที่libsโฟลเดอร์ของคุณภายในappโฟลเดอร์และวาง.jarไฟล์เช่นไลบรารีทั้งหมดของคุณที่นั่นตอนนี้เคล็ดลับที่นี่คือตอนนี้เข้าไปในsettings.gradleไฟล์แล้วเพิ่มบรรทัดนี้include ':app:libs'หลังจากที่include ':app'มันใช้งานได้แน่นอน

19

วิธีอื่นในการนำเข้า lib นี้หรือไม่ ฉันสามารถคัดลอกและวางซอร์สโค้ดลงในซอร์สโค้ดของฉันหรือสร้าง JAR จากมันได้?

ทำตามขั้นตอนเพื่อนำเข้าไลบรารีใน Android Studio 1.1

  1. ไปที่ไฟล์ -> นำเข้าโมดูล
  2. Source Directory -> เรียกดูเส้นทางโครงการ
  3. ระบุชื่อโมดูล
  4. เปิดไฟล์ build.gradle (Module: app)
  5. เพิ่มบรรทัดต่อไปนี้ด้วยชื่อโมดูลของคุณ

    โครงการคอมไพล์ (': internal_project_name')

นำมาจาก: วิธีเพิ่มไลบรารีใน Android Studio


8

คำตอบล่าช้าแม้ว่าฉันคิดว่าจะให้คำตอบเชิงลึกสำหรับคำถามนี้ วิธีนี้เหมาะสำหรับ Android Studio 1.0.0 ขึ้นไป

ขั้นตอน

  1. แรกเปลี่ยนโครงสร้างโฟลเดอร์ของคุณจาก Android เพื่อโครงการ

ใส่คำอธิบายภาพที่นี่

  1. ตอนนี้ค้นหาโฟลเดอร์ libsภายในแอพ - สร้างโฟลเดอร์

ใส่คำอธิบายภาพที่นี่

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

ใส่คำอธิบายภาพที่นี่

ตอนนี้คุณสามารถเริ่มใช้ไลบรารีในโครงการของคุณได้แล้ว


ในกรณีของฉันในขณะที่ใช้แนวทางแรกฉันไม่เห็นตัวเลือกเพิ่มเป็นไลบรารีในรายการ .. แต่ตัวเลือกที่สองใช้ได้กับฉัน แต่คำถามของฉันคือทำไมเพิ่มเป็นตัวเลือกห้องสมุดไม่ปรากฏในกรณีของฉัน
อับดุลวาเฮด

มีประโยชน์มากขอบคุณ! หมายเหตุ: หลังจากอัปเดต android studio ปุ่ม "เพิ่มเป็นห้องสมุด" จะไม่อยู่ที่ด้านล่างสุดของรายการอีกต่อไป ตอนนี้อยู่ที่ประมาณ 5 จากด้านล่าง
JFreeman

8

ฉันก็ประสบปัญหานี้เช่นกัน เวลานั้นฉันทำตามขั้นตอนบางอย่างเช่น:

  1. File> New> >Import module select your library_projectจากนั้นinclude 'library_project'จะถูกเพิ่มในsettings.gradleไฟล์

  2. File> Project Structure> App> >Dependencies Tab select library_projectหากlibrary_projectไม่ปรากฏขึ้นให้คลิกที่+ปุ่มจากนั้นเลือกlibrary_projectไฟล์.

  3. ทำความสะอาดและสร้างโครงการของคุณ บรรทัดต่อไปนี้จะถูกเพิ่มในโมดูลแอปของคุณbuild.gradle( คำใบ้: นี่ไม่ใช่classpathบรรทัดที่กำหนดไว้ )

 dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile project(':library_project')
 }
  1. หากไม่มีบรรทัดเหล่านี้คุณต้องเพิ่มด้วยตนเองและล้างและสร้างโครงการของคุณใหม่อีกครั้ง ( Ctrl + F9)

  2. โฟลเดอร์ชื่อlibrary_projectจะถูกสร้างขึ้นในโฟลเดอร์แอพของคุณ

  3. หากมีการสร้างไอคอนหรือข้อผิดพลาดในการรวมงานให้ไปที่AndroidManifestไฟล์และเพิ่ม<application tools:replace="icon,label,theme">


7

สามวิธีใน android studio สำหรับการเพิ่มไลบรารีภายนอก

  1. หากคุณต้องการเพิ่มการพึ่งพาโปรเจ็กต์ libarary ในโปรเจ็กต์ของคุณ:

    A. ในเมนูไฟล์ให้คลิกใหม่และเลือกโมดูลนำเข้าเลือกเส้นทางโครงการไลบรารีของคุณแล้วคลิกตกลงโครงการไลบรารีจะเพิ่มในโครงการสตูดิโอ Android ของคุณโดยอัตโนมัติ

    B. ตอนนี้เปิดไฟล์ gradle โมดูลหลักของคุณ (เช่นแอป) และเพิ่มการอ้างอิงโครงการในการอ้างอิงส่วนการอ้างอิง {

    โครงการคอมไพล์ (': ชื่อโครงการไลบรารี')

  2. หากคุณต้องการเพิ่มไฟล์ jar: A. เพิ่มไฟล์ jar ในโฟลเดอร์ libs B. และเพิ่มการพึ่งพา

    คอมไพล์ fileTree (dir: 'libs', include: '* .jar') // เพิ่มไฟล์ jar ทั้งหมดจากโฟลเดอร์ libs หากคุณต้องการเพิ่ม jar เฉพาะจาก libs ให้เพิ่มการพึ่งพาด้านล่าง

    คอมไพล์ไฟล์ ('libs / abc.jar')

  3. เพิ่มการพึ่งพาจาก url (แนะนำ) ชอบ

    คอมไพล์ 'com.mcxiaoke.volley: library-aar: 1.0.0'


สวัสดี vinod คุณช่วยอธิบายวิธีเพิ่มการอ้างอิงด้วย URL ได้ไหม นอกจากนี้ยังสามารถเป็น git URL ซึ่งหากผ่านการเปลี่ยนแปลงจะนำเข้าสู่โครงการของฉันโดยตรงหรือไม่ ฉันเป็นมือใหม่เล็กน้อยสำหรับการพัฒนานี้ดังนั้นโปรดอดทนกับฉันหากเป็นคำถามง่ายๆ :)
Katakam Nikhil

สวัสดี Nikhil โปรดอ่านบทความที่เกี่ยวข้องกับการพึ่งพา Android ที่ฉันพูดถึง developer.android.com/studio/build/dependencies.html
vinod

6

สำหรับวิธีที่ง่ายที่สุดเพียงทำตามขั้นตอนเหล่านี้

  1. ไปที่File-> New-> Import Module->choose library or project folder

  2. เพิ่มไลบรารีเพื่อรวมส่วนในไฟล์settings.gradleและซิงค์โปรเจ็กต์ (หลังจากนั้นคุณจะเห็นโฟลเดอร์ใหม่ที่มีการเพิ่มชื่อไลบรารีในโครงสร้างโปรเจ็กต์)

    include ':mylibraryName'

  3. ไปที่ไฟล์ -> โครงสร้างโครงการ -> แอพ -> แท็บการพึ่งพา -> คลิกที่ปุ่มบวก

  4. เลือกการขึ้นต่อกันของโมดูล -> เลือกไลบรารี (ชื่อไลบรารีของคุณควรปรากฏที่นั่น) และใส่ขอบเขต (คอมไพล์หรือการนำไปใช้)

  5. เพิ่มบรรทัดนี้ใน build.gradle ในโมดูลระดับแอปในส่วนการอ้างอิง

    implementation project(':mylibraryName')


3

ถ้าห้องสมุดที่คุณต้องการอยู่บน GitHub แล้วเพิ่มไปยัง Android สตูดิโอเป็นเรื่องง่ายด้วยJitPack

ขั้นตอนที่ 1. เพิ่มที่เก็บ jitpack ใน build.gradle:

allprojects { 
  repositories {
    jcenter()
    maven { url "https://jitpack.io" }
  }
}

ขั้นตอนที่ 2. เพิ่มที่เก็บ GitHub เป็นการอ้างอิง:

dependencies {
    // ...
    compile 'com.github.Username:LibraryRepo:ReleaseTag'
}

JitPack ทำหน้าที่เป็นที่เก็บ maven และสามารถใช้งานได้เหมือนกับ Maven Central สิ่งที่ดีคือผู้ดูแลไม่จำเป็นต้องอัปโหลดไลบรารี เบื้องหลัง JitPack จะตรวจสอบโค้ดจาก GitHub และรวบรวม ดังนั้นจึงจะใช้งานได้จำเป็นต้องมีไฟล์ build ที่ใช้งานได้ในที่เก็บ git

นอกจากนี้ยังมีคำแนะนำในการเผยแพร่ไลบรารี Android


นี่จะไม่เก็บไฟล์อ้างอิงในแผนผังโครงการใช่ไหม
user7860670

2

Android studio ไม่ได้ใช้Mavenมันใช้Gradleคุณสามารถเปิดbuild.gradleเส้นทางของคุณควรเป็น: /app/build.gradleและเพิ่มการพึ่งพา Gradle ที่แสดงบน repo:

build.gradleมีdependenciesส่วน:

dependencies {
    //here add your dependency
}

repo บอกว่าคุณต้องเพิ่มการอ้างอิงนี้:

compile 'com.foursquare:foursquare-android-oauth:1.0.3'

เพิ่มบรรทัดนั้นลงdependenciesใน on ของคุณbuil.gradleบันทึกไฟล์และ Android จะสร้างโครงการขึ้นมาใหม่นั่นคือทั้งหมดที่


1
1.Goto File -> New -> Import Module
   2.Source Directory -> Browse the project path.
   3.Specify the Module Name  it is used for internal project reference.

เปิดไฟล์ build.gradle (Module: app)

 implementation project(':library')

1

เปลี่ยนโปรเจ็กต์ github ใด ๆ ให้เป็นการใช้งานแบบ gradle แบบบรรทัดเดียวกับเว็บไซต์นี้

https://jitpack.io/

ตัวอย่างฉันต้องการโครงการนี้: https://github.com/mik3y/usb-serial-for-android

สิ่งที่ฉันทำคือวางสิ่งนี้ลงในไฟล์ gradle ของฉัน:

implementation 'com.github.mik3y:usb-serial-for-android:master-SNAPSHOT'

คุณช่วยฉันไว้! :). ขอบคุณขอบคุณมาก. มันง่ายมากกับเคล็ดลับที่คุณบอก! : ฉันดิ้นรนเกือบ 4 ชั่วโมงก่อนที่จะเห็นคำตอบของคุณ! :)
วิกเตอร์

0

ผมมีปัญหาเหมือนกัน. สิ่งนี้เกิดขึ้นเนื่องจากการพึ่งพาไลบรารีหลัก ฉันใช้ javax *. นี่คือสิ่งที่ฉันแก้ไข

ในไฟล์ -> โครงสร้างโครงการ -> การอ้างอิงฉันเพิ่มสิ่งนี้เป็นไฟล์ที่ให้มาไม่ใช่คอมไพล์ จากนั้นสร้างโครงการใหม่

ปัญหานี้เริ่มต้นหลังจากอัปเกรด android studio แต่ฉันคิดว่ามันเกิดขึ้นเมื่อคุณพยายามแก้ไขสร้างไฟล์ด้วยตนเอง


0

การเพิ่มไลบรารีในAndroid Studio 2.1

Just Go to project -> then it has some android,package ,test ,project view

เพียงแค่เปลี่ยนเป็นProject View

ภายใต้ app->lib folderคุณสามารถคัดลอกวาง lib โดยตรงและทำการซิงโครไนซ์ android ได้ แค่นั้นแหละ


คัดลอกวาง lib? เป็น url ไปยัง github repo
Odys

0

1) รับ lib ของคุณจากที่นี่http://search.maven.org/

2) สร้างโฟลเดอร์ libs ในไดเรกทอรีแอป

3) วางห้องสมุดของคุณที่นั่น

4) คลิกขวาที่ไลบรารีของคุณแล้วคลิก "เพิ่มเป็นห้องสมุด"

5) นั่นคือทั้งหมดที่คุณต้องทำ!

หวังว่านี่จะช่วยคุณได้แน่นอน !!!!


0

มีการเปลี่ยนแปลงบางอย่างใน gradle 4.1 ใหม่

แทนที่จะคอมไพล์เราควรใช้การนำไปใช้

การใช้งาน 'com.android.support:appcompat-v7:26.0.0'


-1
  1. ในส่วนที่เก็บของ build.gradle ของโปรเจ็กต์ให้เพิ่มสิ่งต่อไปนี้:
flatDir { dirs 'aars' } 
  1. ในส่วนการอ้างอิงของ build.gradle ให้เพิ่มสิ่งต่อไปนี้:

รวบรวม '[รหัสกลุ่ม]: [รหัสวัตถุ]: [รุ่น] @aar'

แทนที่ [group id] ฯลฯ ด้วยแอตทริบิวต์ lib ต่างๆ

  1. สร้างไดเร็กทอรีย่อยaarsภายใต้ไดเร็กทอรีโปรเจ็กต์ของคุณ

  2. คัดลอก[youlibrary].aarไปยังไดเร็กทอรีย่อยที่สร้างใน 3. ด้านบน

  3. สร้างและสนุก!


-2

ขั้นตอนง่ายๆในการเพิ่มห้องสมุดใด ๆ ในสตูดิโอ Android:

  1. คัดลอกไฟล์ที่เป็นปัญหาจากโฟลเดอร์ใด ๆ ในคอมพิวเตอร์ของคุณ (เช่น C: /documents/xyz.jar ") จากนั้นไปที่ Android Studio แล้วคลิกขวาที่โฟลเดอร์ Project Library แล้วเลือกวาง

  2. ตอนนี้คลิกขวาที่ไฟล์ Library ที่เพิ่มเข้ามาใหม่แล้วเลือกตัวเลือก "add as Library"

DONE

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