เพิ่มไลบรารี GitHub ใด ๆ ลงใน Android Studio โดยใช้ Maven, JCenter และ JitPack

ผู้เขียน: Lewis Jackson
วันที่สร้าง: 13 พฤษภาคม 2021
วันที่อัปเดต: 1 กรกฎาคม 2024
Anonim
Create Android Gradle Library | Github Pull/Push | Jitpack.io | Step by Step Guide
วิดีโอ: Create Android Gradle Library | Github Pull/Push | Jitpack.io | Step by Step Guide

เนื้อหา


โครงการ Android น้อยมากที่เป็นเกาะ! โครงการ Android ส่วนใหญ่มีการพึ่งพาส่วนประกอบอื่น ๆ จำนวนหนึ่งรวมถึงห้องสมุด Android ของบุคคลที่สาม

ห้องสมุด Android มีไฟล์เดียวกับที่คุณพบในโครงการ Android ปกติเช่นซอร์สโค้ดทรัพยากรและรายการ อย่างไรก็ตามแทนที่จะรวบรวมเป็น Android Package Kit (APK) ที่สามารถเรียกใช้บนอุปกรณ์ Android ห้องสมุดจะคอมไพล์ลงในที่เก็บรหัสที่คุณสามารถใช้เป็นการอ้างอิงโครงการ ห้องสมุดเหล่านี้ช่วยให้คุณสามารถใช้งานฟังก์ชั่นเพิ่มเติมที่หลากหลายรวมถึงคุณสมบัติบางอย่างที่ไม่ได้รวมอยู่ในแพลตฟอร์ม Android ของ Vanilla

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

ในบทความนี้ฉันจะแสดงวิธีการนำเข้าห้องสมุดใด ๆ ที่คุณค้นพบใน GitHub ในโครงการ Android ของคุณไม่ว่าคุณต้องการเพิ่มห้องสมุดเป็นการพึ่งพาระยะไกลหรือการพึ่งพาในท้องถิ่น


การเพิ่มการพึ่งพาระยะไกล

ระบบสร้าง Gradle ของ Android Studio เพิ่มห้องสมุดให้กับโครงการของคุณเป็นโมดูล การอ้างอิง. การอ้างอิงเหล่านี้สามารถอยู่ในที่เก็บระยะไกลเช่น Maven หรือ JCenter หรือสามารถเก็บไว้ในโครงการของคุณเป็นการพึ่งพาในพื้นที่ - คุณเพียงแค่แจ้งให้ Gradle ทราบว่าสามารถหาการพึ่งพาเหล่านี้ได้จากที่ใด

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

ในการเพิ่มการพึ่งพาระยะไกลคุณจะต้องให้ข้อมูลสองส่วนกับ Gradle:

  • พื้นที่เก็บข้อมูล Gradle จำเป็นต้องรู้ที่เก็บ (หรือที่เก็บ) ที่มันควรมองหาไลบรารี่ของคุณ (หรือไลบรารี่) ห้องสมุด Android มีแนวโน้มที่จะเผยแพร่ผ่าน Maven Central หรือ JCenter
  • คำสั่งการรวบรวม สิ่งนี้มีชื่อแพคเกจของห้องสมุดชื่อกลุ่มของห้องสมุดและเวอร์ชันของห้องสมุดที่คุณต้องการใช้

โดยอุดมคติแล้วหน้า GitHub ของห้องสมุดควรให้ข้อมูลทั้งหมดนี้แก่คุณ ในความเป็นจริงมันไม่ได้เป็นอย่างนั้นเสมอไป แต่ให้เริ่มด้วยสถานการณ์กรณีที่ดีที่สุดและสมมติว่าหน้า GitHub ของห้องสมุดนั้นมีข้อมูลนี้


การเพิ่มการพึ่งพาระยะไกลด้วย JCenter

StyleableToast เป็นห้องสมุดที่ให้คุณปรับแต่งส่วนต่างๆของขนมปังปิ้ง Android รวมถึงการเปลี่ยนสีพื้นหลังรัศมีมุมและแบบอักษรและเพิ่มไอคอน นอกจากนี้ยังให้ข้อมูลทั้งหมดที่คุณต้องการในการเพิ่มห้องสมุดนี้ลงในโครงการของคุณในส่วน "การติดตั้ง" โดยเฉพาะ ที่นี่เราเห็นได้ว่าโครงการนี้เผยแพร่ผ่าน JCenter

เมื่อคุณสร้างโครงการด้วย Android Studio รุ่นล่าสุดไฟล์ build.gradle ของโครงการของคุณได้รับการติดตั้งเพื่อรองรับ JCenter แล้ว หากคุณเปิดไฟล์ build.gradle ในระดับโครงการคุณจะเห็นว่า JCenter รวมอยู่ในส่วน "allprojects / repositories" แล้ว:

allprojects {repositories {jcenter ()}}

หมายเหตุไฟล์ build.gradle ระดับโปรเจ็กต์มีสองบล็อก "คลังเก็บ" แต่บล็อก "buildscript / คลังเก็บ" เป็นที่ที่คุณกำหนดว่า Gradle ดำเนินการสร้างบิลด์อย่างไร คุณไม่ควรเพิ่มการพึ่งพาโมดูลใด ๆ ในส่วนนี้

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

อีกครั้ง StyleableToast ให้ข้อมูลที่เราต้องการอย่างแท้จริงดังนั้นเพียงคัดลอกคำสั่งคอมไพล์จากหน้า GitHub ของ StyleableToast และวางลงในไฟล์ Gradle ของคุณ:

การพึ่งพา {คอมไพล์ com.muddzdev: styleabletoast: 1.0.8}

ซิงค์ไฟล์ Gradle ของคุณโดยคลิกที่แบนเนอร์ ‘ซิงค์’ หรือโดยเลือกไอคอน ‘ซิงค์โปรเจ็กต์กับไฟล์ Gradle’ ในแถบเครื่องมือ Gradle จะสอบถามเซิร์ฟเวอร์ JCenter เพื่อตรวจสอบว่ามีไลบรารี Styleabletoast และดาวน์โหลดไฟล์ทั้งหมด คุณพร้อมที่จะเริ่มใช้ห้องสมุดนี้แล้ว!

2. การเพิ่มการพึ่งพาระยะไกลด้วย Maven Central

หรือหากหน้า GitHub ของโครงการระบุว่าห้องสมุดนี้เผยแพร่ผ่าน Maven Central คุณจะต้องแจ้งให้ Gradle ตรวจสอบ Maven Central แทน

เปิดไฟล์ build.gradle ระดับโครงการและเพิ่ม Maven Central ในบล็อก“ allprojects”:

allprojects {ที่เก็บ {mavenCentral ()}}

จากที่นี่ส่วนที่เหลือของกระบวนการจะเหมือนกันทั้งหมด: เปิดไฟล์ build.gradle ระดับโมดูลเพิ่มคำสั่งการคอมไพล์และซิงค์กับ Gradle

3. การเพิ่มการพึ่งพาระยะไกลที่โฮสต์บนเซิร์ฟเวอร์ของตนเอง

ในบางครั้งคุณอาจพบโครงการที่ยังคงเผยแพร่ผ่าน JCenter หรือ Maven Central แต่ผู้พัฒนาเลือกที่จะโฮสต์โครงการของพวกเขาบนเซิร์ฟเวอร์ของตนเอง เมื่อเป็นกรณีนี้หน้า GitHub ของโครงการควรบอกให้คุณใช้ URL ที่เฉพาะเจาะจงมากตัวอย่างเช่นที่เก็บ Crashlytics Kit ของ Fabric อยู่ที่ https://maven.fabric.io/public

หากคุณเห็น URL ประเภทนี้คุณจะต้องเปิดไฟล์ build.gradle ในระดับโครงการและประกาศพื้นที่เก็บข้อมูล (ในกรณีนี้ Maven) พร้อมกับ URL ที่แน่นอน:

ที่เก็บ {maven {url https://maven.fabric.io/public}}

จากนั้นคุณสามารถเพิ่มคำสั่งการคอมไพล์แล้วซิงค์ไฟล์ของคุณตามปกติ

ถ้าฉันไม่สามารถหาที่เก็บและ / หรือคอมไพล์คำสั่งได้

จนถึงตอนนี้เราได้รับการมองโลกในแง่ดีและคิดว่า GitHub ของโครงการ เสมอ บอกข้อมูลทั้งหมดที่คุณจำเป็นต้องรู้ น่าเสียดายที่นี่ไม่ใช่ทุกกรณีดังนั้นให้เปลี่ยนจากสถานการณ์กรณีที่ดีที่สุดมาเป็นสถานการณ์กรณีที่เลวร้ายที่สุดและจินตนาการว่าหน้า GitHub ของโครงการไม่ได้ให้ข้อมูลใด ๆ เกี่ยวกับที่เก็บและคำสั่งการรวบรวมที่คุณต้องใช้

ในสถานการณ์นี้คุณสามารถ:

  • ใช้ JitPack
  • โคลนที่เก็บข้อมูลทั้งหมดและนำเข้ารหัสในโครงการของคุณเป็นโมดูลของตัวเอง

ใช้ JitPack

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

ขั้นตอนแรกคือการเปิดไฟล์ build.gradle ในระดับโครงการและเพิ่ม JitPack เป็นที่เก็บ:

allprojects {repositories {maven {url https://jitpack.io}}}

จากนั้นคุณสามารถใช้เว็บไซต์ JitPack เพื่อสร้างคำสั่งการคอมไพล์ตาม GitHub URL ของโครงการนั้น:

  • ในเว็บเบราว์เซอร์ของคุณไปที่หน้า GitHub ของห้องสมุด คัดลอก URL
  • ตรงไปที่เว็บไซต์ JitPack
  • วาง URL ลงในช่องค้นหาของเว็บไซต์จากนั้นคลิกที่ปุ่ม "ค้นหา"
  • จากนั้นหน้าเว็บจะแสดงตารางของเวอร์ชันทั้งหมดของไลบรารีนี้แบ่งออกเป็นแท็บต่าง ๆ : รีลีส, Builds, Branches และ Commits โดยทั่วไปการวางจำหน่ายมีแนวโน้มที่จะมีเสถียรภาพมากขึ้นในขณะที่ส่วน Commit มีการเปลี่ยนแปลงล่าสุด

  • เมื่อคุณตัดสินใจเลือกเวอร์ชันที่คุณต้องการใช้แล้วให้คลิกที่ปุ่ม ‘รับเป็น’
  • เว็บไซต์ควรอัปเดตเพื่อแสดงคำสั่งการรวบรวมที่แน่นอนที่คุณต้องการใช้

  • คัดลอก / วางคำสั่งการคอมไพล์นี้ลงในไฟล์ build.gradle ระดับโมดูลของโครงการ
  • ซิงค์ไฟล์ Gradle ของคุณและคุณพร้อมที่จะเริ่มใช้ห้องสมุดของคุณแล้ว!

การโคลนโครงการ GitHub

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

วิธีนี้อาจใช้เวลานานและการนำเข้าโค้ดทั้งหมดของโครงการอาจทำให้เกิดความขัดแย้งกับส่วนที่เหลือของโครงการของคุณ อย่างไรก็ตามการโคลนนิ่งทำให้คุณสามารถเข้าถึงรหัสทั้งหมดของไลบรารีได้ดังนั้นวิธีนี้จึงเหมาะอย่างยิ่งหากคุณต้องการปรับแต่งไลบรารีตัวอย่างเช่นโดยการปรับแต่งรหัสเพื่อให้ทำงานร่วมกับส่วนที่เหลือของโครงการของคุณได้ดีขึ้นหรือแม้กระทั่งเพิ่มคุณลักษณะใหม่ ๆ หากคุณรู้สึกว่าคนอื่นอาจได้รับประโยชน์จากการเปลี่ยนแปลงของคุณคุณอาจต้องการพิจารณาให้การสนับสนุนการปรับปรุงของคุณกลับไปที่โครงการ)

วิธีโคลนโครงการ GitHub:

  • สร้างบัญชี GitHub
  • เลือก "ชำระเงินจากการควบคุมเวอร์ชัน" จากหน้าจอ "ยินดีต้อนรับ" ของ Android Studio
  • ป้อนข้อมูลรับรอง GitHub ของคุณ
  • เปิดเว็บเบราว์เซอร์นำทางไปยังที่เก็บ GitHub ที่คุณต้องการโคลนจากนั้นคัดลอก / วาง URL ลงในกล่องโต้ตอบ Android Studio
  • ระบุโลคัลไดเร็กทอรีที่คุณต้องการเก็บที่เก็บโคลน
  • ตั้งชื่อไดเรกทอรีนี้แล้วคลิก 'โคลน'

ตอนนี้คุณมีสำเนาของรหัสห้องสมุดคุณสามารถนำเข้าห้องสมุดนี้ในโครงการ Android ของคุณเป็นโมดูลใหม่:

  • เปิดโครงการที่คุณต้องการใช้ไลบรารีโคลนจากนั้นเลือก ‘ไฟล์> สร้างใหม่> นำเข้าโมดูล’ จากแถบเครื่องมือ Android Studio
  • คลิกที่ปุ่มสามจุดและไปที่ที่เก็บโคลนของคุณ เลือกที่เก็บนี้แล้วคลิก ‘ตกลง’
  • คลิก 'เสร็จสิ้น'
  • เลือก "ไฟล์> โครงสร้างโครงการ" จากแถบเครื่องมือ Android Studio
  • ในเมนูด้านซ้ายเลือกโมดูลที่คุณต้องการใช้ไลบรารีนี้
  • เลือกแท็บ "การพึ่งพา"

  • เลือกไอคอน ‘+’ ตัวน้อยตามด้วย ‘การพึ่งพาโมดูล’
  • เลือกโมดูลห้องสมุดของคุณจากนั้นคลิก ‘ตกลง’
  • ออกจากหน้าต่าง 'โครงสร้างโครงการ'

คุณอาจจำเป็นต้องทำการปรับเปลี่ยนรหัสที่นำเข้าของคุณทั้งนี้ขึ้นอยู่กับห้องสมุดที่คุณใช้ก่อนที่โครงการของคุณจะรวบรวม ตัวอย่างเช่นหากแท็บของ Android Studio บ่นเกี่ยวกับ minSdkVersions ที่เข้ากันไม่ได้ดังนั้นโอกาสที่ API จะถูกใช้โดยไลบรารีจะไม่เข้ากันกับเวอร์ชันของแพลตฟอร์ม Android ที่กำหนดไว้ในไฟล์ build.gradle ของโครงการ ในทำนองเดียวกันหาก Android Studio กำลังบ่นเกี่ยวกับ buildToolsVersion ของโครงการของคุณอาจเป็นไปได้ว่ามีความไม่ตรงกันระหว่างเวอร์ชันที่กำหนดในไลบรารีและเวอร์ชันที่กำหนดไว้ที่อื่นในโครงการของคุณ ในสถานการณ์ทั้งสองนี้คุณจะต้องตรวจสอบค่าที่กำหนดในทั้งไฟล์ build.gradle และเปลี่ยนแปลงให้สอดคล้องกัน

การแก้ไขปัญหา

เมื่อคุณทำงานกับ ใด ประเภทซอฟต์แวร์ของบุคคลที่สามตามกฎทั่วไปคุณมีแนวโน้มที่จะพบกับความไม่ลงรอยกันข้อบกพร่องและสิ่งรอบตัวทั้งหมด แปลก พฤติกรรมเปรียบเทียบกับเมื่อคุณใช้ชุดซอฟต์แวร์ที่พัฒนาโดยทีมเดียวกันและที่ทุกส่วนของปริศนาได้รับการออกแบบมาโดยเฉพาะเพื่อทำงานร่วมกัน

หากคุณพบปัญหาหลังจากเพิ่มห้องสมุดในโครงการของคุณให้ลองแก้ไขปัญหาต่อไปนี้:

  • ตรวจสอบว่าคุณไม่ได้เพิ่มไลบรารีเดียวกันหลายเวอร์ชันโดยไม่ตั้งใจ หาก Android Studio รายงานข้อผิดพลาด“ ไฟล์ DEX หลายไฟล์ที่กำหนด ... ” คุณอาจเพิ่มห้องสมุดเดียวกันในโครงการของคุณมากกว่าหนึ่งครั้ง คุณสามารถตรวจสอบการพึ่งพาของโมดูลได้โดยเลือก "ไฟล์> โครงสร้างโครงการ" จากแถบเครื่องมือ Android Studio จากนั้นเลือกโมดูลที่คุณต้องการตรวจสอบและคลิกแท็บ "การพึ่งพา" หากห้องสมุดปรากฏในหน้าต่างนี้หลายครั้งให้เลือกรายการซ้ำและคลิกไอคอน ‘-’ เพื่อลบออก
  • ค้นหาในเว็บ มีโอกาสที่คนอื่นอาจประสบปัญหาเดียวกันกับคุณดังนั้นทำการค้นหาโดย Google อย่างรวดเร็วเพื่อดูว่ามีใครโพสต์เกี่ยวกับปัญหานี้ในฟอรัมหรือชุมชนเช่น Stackoverflow คุณอาจโชคดีและพบบล็อกหรือบทช่วยสอนที่มีคำแนะนำเกี่ยวกับวิธีแก้ไขปัญหาที่แน่นอนนี้
  • ทำความสะอาดและสร้างโครงการของคุณใหม่ บางครั้งการเลือก "สร้าง> ล้างโครงการ" จากแถบเครื่องมือ Android Studio แล้วตามด้วย "สร้าง> สร้างโครงการใหม่" อาจเพียงพอที่จะแก้ปัญหาของคุณ
  • และถ้าทุกอย่างอื่นล้มเหลว ... การใช้ซอฟต์แวร์บุคคลที่สามให้ทำงานได้อย่างถูกต้องในบางครั้งอาจต้องใช้การทดลองและข้อผิดพลาดเล็กน้อยดังนั้นหากมีวิธีอื่นในการนำเข้าห้องสมุดที่คุณเลือก เพียงเพราะโครงการของคุณปฏิเสธที่จะคอมไพล์หลังจากที่คุณนำเข้าที่เก็บข้อมูลที่ถูกโคลนไม่จำเป็นต้องหมายความว่ามันจะมีปฏิกิริยาแบบเดียวกันหากคุณพยายามใช้ไลบรารีเดียวกันเป็นการพึ่งพาระยะไกล

ห่อ

ในบทความนี้เราได้ดูว่าคุณสามารถเพิ่มห้องสมุดใด ๆ ที่คุณค้นพบใน GitHub ไปยังโครงการ Android ของคุณได้อย่างไรโดยไม่คำนึงว่าห้องสมุดนั้นจะเผยแพร่ผ่าน JCenter หรือ Maven Central และแม้ว่าคุณจะไม่ทราบว่าที่เก็บข้อมูลหรือคำสั่งการคอมไพล์ที่คุณต้องการใช้คุณก็มีตัวเลือกในการใช้ JitPack หรือโคลนรหัสห้องสมุด

คุณค้นพบห้องสมุด Android ที่ยอดเยี่ยมบน GitHub หรือไม่? แจ้งให้เราทราบในความคิดเห็นด้านล่าง!

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

อัปเดต, 18 มกราคม 2019 (01:15 PM ET): เมื่อวานนี้เราได้รับคำจาก E App Group ผู้สร้าง E File Explorer บริษัท แจ้งให้เราทราบว่าช่องโหว่ HTTP ตามที่อธิบายไว้ในบทความด้านล่างได้รับการแก้ไขแล้ว...

ที่น่าสนใจบนเว็บไซต์