Legg til hvilket som helst GitHub-bibliotek til Android Studio ved å bruke Maven, JCenter og JitPack

Forfatter: Lewis Jackson
Opprettelsesdato: 13 Kan 2021
Oppdater Dato: 1 Juli 2024
Anonim
Legg til hvilket som helst GitHub-bibliotek til Android Studio ved å bruke Maven, JCenter og JitPack - Apps
Legg til hvilket som helst GitHub-bibliotek til Android Studio ved å bruke Maven, JCenter og JitPack - Apps

Innhold


Svært få Android-prosjekter er en øy! De fleste Android-prosjekter er avhengige av en rekke andre komponenter, inkludert Android-biblioteker fra tredjeparter.

Et Android-bibliotek inneholder de samme filene som du finner i et vanlig Android-prosjekt, for eksempel kildekode, ressurser og et manifest. I stedet for å kompilere til et Android Package Kit (APK) som kan kjøres på en Android-enhet, kompilerer et bibliotek imidlertid til et kodearkiv som du kan bruke som prosjektavhengighet. Disse bibliotekene gir deg tilgang til et bredt spekter av tilleggsfunksjoner, inkludert noen funksjoner som ikke er inkludert i vanilje Android-plattformen.

Et av de beste stedene å finne Android-biblioteker, er GitHub. Å få et bibliotek fra GitHub-siden og inn i prosjektet ditt er imidlertid ikke alltid like enkelt, spesielt siden det er flere forskjellige lagringsplasser som utviklere kan bruke for å distribuere sine GitHub-prosjekter - og det kan ikke alltid være åpenbart hvilket arkiv en utvikler bruker!


I denne artikkelen skal jeg vise deg hvordan du importerer et bibliotek du oppdager på GitHub til Android-prosjektet ditt, uavhengig av om du vil legge til biblioteket som en ekstern avhengighet, eller som en lokal avhengighet.

Legge til eksterne avhengigheter

Android Studios Gradle build-system legger biblioteker til prosjektet ditt som modul avhengig. Disse avhengighetene kan enten være lokalisert i et eksternt lagringssted, for eksempel Maven eller JCenter, eller de kan lagres i prosjektet ditt, som en lokal avhengighet - du trenger bare å gi Gradle beskjed hvor den kan finne disse avhengighetene.

Å legge til et bibliotek som en ekstern avhengighet er vanligvis den raskeste og enkleste måten å få bibliotekets kode inn i prosjektet ditt, så dette er metoden vi skal se på først. Når du legger til et bibliotek som en ekstern avhengighet, vil Gradle sørge for at avhengigheten har alt den trenger for å kunne kjøre, inkludert eventuelt transitive avhengigheter, slik at du vanligvis vil legge til et bibliotek som en ekstern avhengighet der det er mulig.


For å legge til en ekstern avhengighet, må du gi Gradle to informasjonsstykker:

  • Depotet. Gradle trenger å vite depotet (eller depotene) hvor det skal se etter biblioteket ditt (eller bibliotekene). Android-biblioteker har en tendens til å distribueres enten via Maven Central eller JCenter.
  • Sammendraget. Dette inneholder bibliotekets pakkenavn, navnet på bibliotekets gruppe og versjonen av biblioteket du vil bruke.

Ideelt sett bør bibliotekets GitHub-side gi deg all denne informasjonen. I virkeligheten er dette ikke alltid tilfelle, men la oss starte med best case-scenariet og anta at bibliotekets GitHub-side inkluderer denne informasjonen.

Legge til en avhengighet med JCenter

StyleableToast er et bibliotek som lar deg tilpasse alle deler av Android's toasts, inkludert å endre bakgrunnsfarge, hjørneradius og font, og legge til ikoner. Den gir også all informasjonen du trenger for å legge dette biblioteket til prosjektet ditt, i den dedikerte delen "Installasjon". Her kan vi se at dette prosjektet distribueres via JCenter.

Når du lager et prosjekt med de siste utgavene av Android Studio, er prosjektets build.gradle-filer allerede konfigurert for å støtte JCenter. Hvis du åpner build.gradle-filen på prosjektnivå, vil du se at JCenter allerede er inkludert i delen 'allprojects / repositories':

allprojects {repositories {jcenter ()}}

Merk at build.gradle-filen på prosjektnivå inneholder to ‘repositories’ blokker, men ‘buildscript / repositories’ -blokken er der du definerer hvordan Gradle utfører denne builden. Du bør ikke legge til noen modulavhengigheter til denne delen.

Siden prosjektet ditt allerede er konfigurert til å sjekke JCenter, er det eneste vi trenger å gjøre å legge til kompilasjonsuttalelsen til build.gradle-filen på modulnivå.

Nok en gang gir StyleableToast oss nøyaktig den informasjonen vi trenger, så bare kopier sammenstillingsuttalelsen fra StyleableToasts GitHub-side, og lim den inn i Gradle-filen:

avhengigheter {kompiler com.muddzdev: styleabletoast: 1.0.8}

Synkroniser Gradle-filene dine, enten ved å klikke på ‘Synkroniser’ banneret, eller ved å velge ‘Synkroniser prosjekt med Gradle Files’ ikonet på verktøylinjen. Gradle spør deretter JCenter-serveren for å sjekke at Styleabletoast-biblioteket eksisterer, og laster ned alle filene. Du er nå klar til å begynne å bruke dette biblioteket!

2. Legge til en avhengighet med Maven Central

Alternativt, hvis prosjektets GitHub-side sier at dette biblioteket er distribuert via Maven Central, må du snakke med Gradle om å sjekke Maven Central i stedet.

Åpne build.gradle-filen på prosjektnivå og legg Maven Central til "allprojects" -blokken:

allprojects {repositories {mavenCentral ()}}

Herfra er resten av prosessen nøyaktig den samme: åpne build.gradle-filen på modulnivå, legg til setningsoppgaven og synkroniser med Gradle.

3. Legge til en ekstern avhengighet som er vert på sin egen server

Noen ganger kan du støte på et prosjekt som fremdeles distribueres via JCenter eller Maven Central, men utvikleren har valgt å være vertskap for prosjektet sitt på sin egen server. Når dette er tilfelle, bør prosjektets GitHub-side fortelle deg at du bruker en veldig spesifikk URL, for eksempel Fabric's Crashlytics Kit-depot ligger på https://maven.fabric.io/public.

Hvis du ser denne typen URL, må du åpne build.gradle-filen på prosjektnivå og deretter erklære depotet (i dette tilfellet, Maven) sammen med den eksakte URL-adressen:

depot {maven {url https://maven.fabric.io/public}}

Du kan deretter legge til kompileringsuttalelsen og synkronisere filene dine som normalt.

Hva om jeg ikke finner depotet og / eller kompilere utsagnet?

Frem til nå har vi vært optimistiske og antatt at prosjektets GitHub bestandig forteller deg all informasjonen du trenger å vite. Dessverre er det ikke alltid tilfelle, så la oss skifte fra best case-scenariet til worst case-scenariet, og tenk deg at prosjektets GitHub-side ikke gir deg informasjon om depotet og samleerklæringen du trenger å bruke.

I dette scenariet kan du enten:

  • Bruk JitPack.
  • Klone hele depotet, og importer koden til prosjektet ditt som sin egen modul.

Bruker JitPack

JitPack er et pakkeoppbevaring for Git som lar deg legge til ethvert GitHub-prosjekt som en ekstern avhengighet. Så lenge biblioteket inneholder en build-fil, kan JitPack generere all informasjonen du trenger for å legge dette biblioteket til prosjektet ditt.

Det første trinnet er å åpne build.gradle-filen på prosjektnivå og legge til JitPack som et depot:

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

Du kan deretter bruke nettstedet JitPack til å generere en kompilasjonserklæring, basert på prosjektets GitHub-URL:

  • Naviger til bibliotekets GitHub-side i nettleseren din. Kopier URL-en.
  • Gå over til nettstedet JitPack.
  • Lim inn nettadressen i nettstedets søkefelt, og klikk deretter på den medfølgende ‘Slå opp’ -knappen.
  • Nettsiden vil deretter vise en tabell over alle versjonene av dette biblioteket, fordelt på forskjellige faner: Utgivelser, Bygg, Grener og Forpliktelser. Utgivelser pleier å være mer stabile, mens forpliktelsesdelen inneholder de siste endringene.

  • Når du har bestemt deg for hvilken versjon du vil bruke, klikker du på den medfølgende ‘Get It’ -knappen.
  • Nettstedet bør oppdatere for å vise den nøyaktige kompileringsklaringen du trenger å bruke.

  • Kopier / lim inn denne sammenstillingsuttalelsen i prosjektets build.gradle-fil på modulnivå.
  • Synkroniser Gradle-filene dine, og du er klar til å begynne å bruke biblioteket ditt!

Kloning av et GitHub-prosjekt

Alternativt, når du er usikker på bibliotekets depot og / eller utarbeide uttalelse, kan det være lurt å gjøre det klone GitHub-prosjektet. Kloning lager en kopi av alle GitHub-prosjektets kode og ressurser, og lagrer denne kopien på din lokale maskin. Du kan deretter importere klonen til prosjektet ditt som sin egen modul, og bruke den som modulavhengighet.

Denne metoden kan være tidkrevende, og å importere hele prosjektets kode kan føre til konflikter med resten av prosjektet. Kloning gir deg imidlertid tilgang til all bibliotekets kode, så denne metoden er ideell hvis du vil tilpasse biblioteket, for eksempel ved å finpusse koden for å integrere bedre med resten av prosjektet, eller til og med legge til nye funksjoner (selv om Hvis du føler at andre mennesker kan ha nytte av endringene dine, kan det være lurt å vurdere å bidra med forbedringene dine tilbake til prosjektet).

Slik kloner du et GitHub-prosjekt:

  • Opprett en GitHub-konto.
  • Velg ‘Kasse fra versjonskontroll’ fra skjermbildet ‘Velkommen’ i Android Studio.
  • Angi GitHub-legitimasjonen.
  • Åpne nettleseren din, naviger til GitHub-arkivet du vil klone, og kopier / lim deretter inn URL-en i dialogboksen Android Studio.
  • Spesifiser den lokale katalogen der du vil lagre det klonede depotet.
  • Gi denne katalogen et navn, og klikk deretter på 'Klon'.

Nå har du en kopi av bibliotekets kode, du kan importere dette biblioteket til Android-prosjektet ditt, som en ny modul:

  • Åpne prosjektet der du vil bruke det klonede biblioteket, og velg deretter 'Fil> Ny> Importer modul' fra verktøylinjen til Android Studio.
  • Klikk på den prikkede knappen og naviger til det klonede depotet ditt. Velg dette depotet, og klikk deretter på 'OK'.
  • Klikk "Fullfør."
  • Velg ‘Fil> Prosjektstruktur’ fra verktøylinjen i Android Studio.
  • I menyen til venstre velger du modulen der du vil bruke dette biblioteket.
  • Velg fanen ‘Avhengigheter’.

  • Velg det lille '+' -ikonet, etterfulgt av 'Modulavhengighet.'
  • Velg bibliotekmodulen din, og klikk deretter på 'OK'.
  • Gå ut av ‘Prosjektstruktur’ -vinduet.

Avhengig av biblioteket du bruker, kan det hende du må gjøre noen justeringer av den importerte koden før prosjektet skal samles. Hvis for eksempel fanen til Android Studio klager over inkompatible minSdkVersions, er sjansen stor for at APIene som brukes av biblioteket ikke er kompatible med versjonene av Android-plattformen som er definert i prosjektets build.gradle-fil. Tilsvarende, hvis Android Studio klager over prosjektets buildToolsVersion, er det sannsynlig at det er et misforhold mellom versjonen som er definert i biblioteket og versjonen som er definert et annet sted i prosjektet. I begge disse scenariene må du sjekke verdiene som er definert i begge build.gradle-filene, og endre dem deretter.

Feilsøking

Når du jobber med noen slags tredjepartsprogramvare, som en generell regel er det mer sannsynlig at du vil støte på inkompatibiliteter, bugs og all-around rar oppførsel, sammenlignet med når du bruker en pakke med programvare som ble utviklet av det samme teamet, og hvor hvert eneste puslespill var spesielt designet for å fungere sammen.

Hvis du får problemer etter å ha lagt et bibliotek til prosjektet ditt, kan du prøve følgende fikser:

  • Sjekk at du ikke tilfeldigvis har lagt til flere versjoner av det samme biblioteket. Hvis Android Studio rapporterer feilen "flere DEX-filer definerer ...", kan det hende du har lagt det samme biblioteket til prosjektet ditt mer enn en gang. Du kan gå gjennom modulenes avhengigheter ved å velge ‘Fil> Prosjektstruktur’ fra verktøylinjen i Android Studio, deretter velge modulen du vil undersøke og klikke på fanen ‘Avhengigheter’. Hvis et bibliotek vises i dette vinduet flere ganger, velger du duplikatet og klikker på det lille '-' - ikonet for å fjerne det.
  • Søke på nettet. Det er alltid en sjanse for at andre mennesker kan ha opplevd det samme problemet som deg, så utfør et raskt Google-søk for å se om noen har lagt ut om dette problemet på fora, eller samfunn som Stackoverflow. Du kan til og med være heldig og finne en blogg eller en tutorial som inneholder instruksjoner om hvordan du løser akkurat dette problemet.
  • Rengjør og gjenoppbygg prosjektet ditt. Noen ganger kan det være nok å velge 'Bygg> Rengjør prosjekt' fra Android Studio-verktøylinjen, etterfulgt av 'Bygg> Gjenoppbygge prosjekt'.
  • Og hvis alt annet mislykkes ... Å få tredjepartsprogramvare til å fungere riktig krever noen ganger litt prøving og feiling, så hvis det er en alternativ metode for å importere det valgte biblioteket ditt, er det alltid verdt å prøve. Bare fordi prosjektet ditt nekter å samle seg etter at du har importert et klonet lagringssted, betyr ikke det nødvendigvis at det kommer til å få den samme reaksjonen hvis du prøver å bruke det samme biblioteket som en ekstern avhengighet.

Pakk inn

I denne artikkelen så vi på hvordan du kan legge til et hvilket som helst bibliotek du oppdager på GitHub, til Android-prosjektet ditt, uavhengig av om det biblioteket er distribuert via JCenter eller Maven Central. Og selv om du ikke aner hva depot eller kompileringskompetanse du trenger å bruke, har du alltid muligheten til å bruke JitPack eller klone bibliotekets kode.

Har du oppdaget noen flotte Android-biblioteker på GitHub? Gi oss beskjed i kommentarene nedenfor!

Datainnbrudd er en av de tørte trulene om tår overfor dagen digitale landkap, på grunn av nettkriminelle og mangelfulle ikkerhettiltak. Heldigvi har Google kunngjort laneringen av et ny...

og kan være konkurrenter på teknologifæren, men de er ogå partnere. Faktik en rapport publiert på CNBC i går antyder at Google betaler Apple for milliarder av dollar per...

Pass På Å Lese