Voeg elke GitHub-bibliotheek toe aan Android Studio, met behulp van Maven, JCenter en JitPack

Schrijver: Lewis Jackson
Datum Van Creatie: 13 Kunnen 2021
Updatedatum: 1 Juli- 2024
Anonim
Voeg elke GitHub-bibliotheek toe aan Android Studio, met behulp van Maven, JCenter en JitPack - Apps
Voeg elke GitHub-bibliotheek toe aan Android Studio, met behulp van Maven, JCenter en JitPack - Apps

Inhoud


Zeer weinig Android-projecten zijn een eiland! De meeste Android-projecten zijn afhankelijk van een aantal andere componenten, waaronder Android-bibliotheken van derden.

Een Android-bibliotheek bevat dezelfde bestanden die u in een normaal Android-project zou vinden, zoals broncode, bronnen en een manifest. In plaats van te compileren in een Android Package Kit (APK) die op een Android-apparaat kan worden uitgevoerd, wordt een bibliotheek echter gecompileerd in een code-archief dat u kunt gebruiken als projectafhankelijkheid. Deze bibliotheken geven u toegang tot een breed scala aan extra functionaliteit, waaronder enkele functies die niet zijn opgenomen in het vanille Android-platform.

Een van de beste plaatsen om Android-bibliotheken te vinden, is GitHub. Het is echter niet altijd eenvoudig om een ​​bibliotheek van de GitHub-pagina en in uw project te krijgen, vooral omdat er verschillende repositories zijn die ontwikkelaars kunnen gebruiken om hun GitHub-projecten te distribueren - en het is niet altijd duidelijk welke repository een ontwikkelaar gebruikt!


In dit artikel ga ik je laten zien hoe je elke bibliotheek die je op GitHub ontdekt in je Android-project kunt importeren, ongeacht of je de bibliotheek wilt toevoegen als externe afhankelijkheid of als lokale afhankelijkheid.

Externe afhankelijkheden toevoegen

Het Gradle build-systeem van Android Studio voegt bibliotheken aan uw project toe als module afhankelijkheden. Deze afhankelijkheden kunnen zich bevinden in een externe repository, zoals Maven of JCenter, of ze kunnen in uw project worden opgeslagen als een lokale afhankelijkheid - u hoeft Gradle gewoon te laten weten waar deze afhankelijkheden kunnen worden gevonden.

Het toevoegen van een bibliotheek als externe afhankelijkheid is meestal de snelste en eenvoudigste manier om de code van een bibliotheek in uw project te krijgen, dus dit is de methode die we eerst gaan bekijken. Wanneer u een bibliotheek toevoegt als externe afhankelijkheid, zorgt Gradle ervoor dat de afhankelijkheid alles heeft wat nodig is om uit te voeren, inclusief eventuele transitief afhankelijkheden, dus meestal wilt u waar mogelijk een bibliotheek toevoegen als externe afhankelijkheid.


Om externe afhankelijkheid toe te voegen, moet u Gradle twee soorten informatie verstrekken:

  • De repository. Gradle moet de repository (of repositories) kennen waar deze naar uw bibliotheek (of bibliotheken) moet zoeken. Android-bibliotheken worden meestal verspreid via Maven Central of JCenter.
  • De compilatie-instructie. Dit bevat de pakketnaam van de bibliotheek, de naam van de groep van de bibliotheek en de versie van de bibliotheek die u wilt gebruiken.

In het ideale geval zou de GitHub-pagina van de bibliotheek u al deze informatie moeten bieden. In werkelijkheid is dit niet altijd het geval, maar laten we beginnen met het beste scenario en aannemen dat de GitHub-pagina van de bibliotheek deze informatie bevat.

Een externe afhankelijkheid toevoegen met JCenter

StyleableToast is een bibliotheek waarmee je elk deel van de toasts van Android kunt aanpassen, inclusief de achtergrondkleur, hoekradius en lettertype wijzigen en pictogrammen toevoegen. Het biedt ook alle informatie die u nodig hebt om deze bibliotheek aan uw project toe te voegen, in het speciale gedeelte 'Installatie'. Hier kunnen we zien dat dit project wordt gedistribueerd via JCenter.

Wanneer u een project maakt met de nieuwste releases van Android Studio, zijn de build.gradle-bestanden van uw project al ingesteld om JCenter te ondersteunen. Als u uw build.gradle-bestand op projectniveau opent, ziet u dat JCenter al is opgenomen in de sectie ‘alleprojecten / repositories’:

allprojects {repositories {jcenter ()}}

Let op, het build.gradle-bestand op projectniveau bevat twee ‘repositories’ blokken, maar het ‘buildscript / repositories’ blok definieert hoe Gradle deze build uitvoert. Voeg geen module-afhankelijkheden toe aan deze sectie.

Omdat uw project al is geconfigureerd om JCenter te controleren, hoeven we alleen onze compilatieverklaring aan het build.gradle-bestand op moduleniveau toe te voegen.

Nogmaals, StyleableToast biedt ons precies de informatie die we nodig hebben, dus kopieer de compilatieverklaring van de GitHub-pagina van StyleableToast en plak deze in uw Gradle-bestand:

afhankelijkheden {compileer com.muddzdev: styleabletoast: 1.0.8}

Synchroniseer uw Gradle-bestanden door op de banner ‘Synchroniseren’ te klikken of door het pictogram ‘Synchroniseer project met Gradle-bestanden’ op de werkbalk te selecteren. Gradle vraagt ​​vervolgens de JCenter-server om te controleren of de Styleabletoast-bibliotheek bestaat en downloadt alle bestanden. U bent nu klaar om deze bibliotheek te gebruiken!

2. Een externe afhankelijkheid toevoegen met Maven Central

Als de GitHub-pagina van het project aangeeft dat deze bibliotheek wordt gedistribueerd via Maven Central, moet je Gradle in plaats daarvan vertellen om Maven Central te controleren.

Open uw build.gradle-bestand op projectniveau en voeg Maven Central toe aan het blok "alleprojecten":

alleprojecten {repositories {mavenCentral ()}}

Vanaf hier is de rest van het proces precies hetzelfde: open uw build.gradle-bestand op moduleniveau, voeg de compilatie-instructie toe en synchroniseer met Gradle.

3. Een externe afhankelijkheid toevoegen die op zijn eigen server wordt gehost

Af en toe kun je een project tegenkomen dat nog steeds via JCenter of Maven Central wordt gedistribueerd, maar de ontwikkelaar heeft ervoor gekozen om hun project op hun eigen server te hosten. Wanneer dit het geval is, moet de GitHub-pagina van het project u vertellen dat u een zeer specifieke URL moet gebruiken, bijvoorbeeld Fabric's Crashlytics Kit-repository bevindt zich op https://maven.fabric.io/public.

Als u dit soort URL ziet, moet u uw build.gradle-bestand op projectniveau openen en vervolgens de repository (in dit geval Maven) en de exacte URL declareren:

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

U kunt vervolgens de compilatie-instructie toevoegen en uw bestanden zoals normaal synchroniseren.

Wat als ik de repository en / of compilatie-instructie niet kan vinden?

Tot nu toe zijn we optimistisch geweest en zijn we ervan uitgegaan dat het GitHub van het project is altijd vertelt u alle informatie die u moet weten. Helaas is dit niet altijd het geval, dus laten we van het beste geval naar het slechtste scenario overschakelen en stel je voor dat de GitHub-pagina van het project je geen informatie geeft over de repository en compilatie-instructie die je moet gebruiken.

In dit scenario kunt u:

  • Gebruik JitPack.
  • Kloon de hele repository en importeer de code ervan in uw project als zijn eigen module.

JitPack gebruiken

JitPack is een pakketrepository voor Git waarmee je elk GitHub-project kunt toevoegen als externe afhankelijkheid. Zolang de bibliotheek een buildbestand bevat, kan JitPack alle informatie genereren die u nodig hebt om deze bibliotheek aan uw project toe te voegen.

De eerste stap is om uw build.gradle-bestand op projectniveau te openen en JitPack als repository toe te voegen:

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

U kunt vervolgens de JitPack-website gebruiken om een ​​compilatieverklaring te genereren op basis van de GitHub-URL van dat project:

  • Navigeer in uw webbrowser naar de GitHub-pagina van de bibliotheek. Kopieer de URL.
  • Ga naar de JitPack-website.
  • Plak de URL in het zoekveld van de website en klik vervolgens op de bijbehorende knop 'Opzoeken'.
  • De webpagina geeft dan een tabel weer met alle versies van deze bibliotheek, verdeeld over verschillende tabbladen: Releases, Builds, Branches en Commits. Meestal zijn releases stabieler, terwijl het gedeelte Commit de laatste wijzigingen bevat.

  • Nadat u hebt besloten welke versie u wilt gebruiken, klikt u op de bijbehorende knop 'Get it'.
  • De website moet worden bijgewerkt om de exacte compilatie-instructie weer te geven die u moet gebruiken.

  • Kopieer / plak deze compilatieverklaring in het build.gradle-bestand op moduleniveau van uw project.
  • Synchroniseer uw Gradle-bestanden en u bent klaar om uw bibliotheek te gebruiken!

Een GitHub-project klonen

Als u niet zeker bent van de repository en / of compilatie-instructie van een bibliotheek, wilt u misschien kloon het GitHub-project. Klonen maakt een kopie van alle code en bronnen van het GitHub-project en slaat deze kopie op uw lokale computer op. U kunt de kloon vervolgens als uw eigen module in uw project importeren en gebruiken als module-afhankelijkheid.

Deze methode kan tijdrovend zijn en het importeren van de volledige code van een project kan conflicten veroorzaken met de rest van uw project. Klonen geeft je echter wel toegang tot alle code van de bibliotheek, dus deze methode is ideaal als je de bibliotheek wilt aanpassen, bijvoorbeeld door de code aan te passen om beter te integreren met de rest van je project, of zelfs door nieuwe functies toe te voegen (hoewel als je het gevoel hebt dat andere mensen kunnen profiteren van je veranderingen, dan kun je overwegen om je verbeteringen terug te dragen aan het project).

Een GitHub-project klonen:

  • Maak een GitHub-account.
  • Selecteer ‘Afrekenen bij versiebeheer’ in het ‘Welkom’ -scherm van Android Studio.
  • Voer uw GitHub-gegevens in.
  • Open uw webbrowser, navigeer naar de GitHub-repository die u wilt klonen en kopieer / plak de URL vervolgens in het dialoogvenster van Android Studio.
  • Geef de lokale map op waar u de gekloonde repository wilt opslaan.
  • Geef deze map een naam en klik vervolgens op ‘Clone.’

Nu je een kopie van de code van de bibliotheek hebt, kun je deze bibliotheek als een nieuwe module in je Android-project importeren:

  • Open het project waar u uw gekloonde bibliotheek wilt gebruiken en selecteer vervolgens 'Bestand> Nieuw> Module importeren' op de werkbalk van Android Studio.
  • Klik op de drie-gestippelde knop en navigeer naar je gekloonde repository. Selecteer deze repository en klik vervolgens op 'OK'.
  • Klik op 'Voltooien'.
  • Selecteer 'Bestand> Projectstructuur' op de werkbalk van Android Studio.
  • Selecteer in het linkermenu de module waarvoor u deze bibliotheek wilt gebruiken.
  • Selecteer het tabblad ‘Afhankelijkheden’.

  • Selecteer het kleine ‘+’ pictogram, gevolgd door ‘Module-afhankelijkheid’.
  • Selecteer uw bibliotheekmodule en klik vervolgens op 'OK'.
  • Sluit het venster ‘Projectstructuur’.

Afhankelijk van de bibliotheek die u gebruikt, moet u mogelijk enkele aanpassingen aanbrengen in uw geïmporteerde code voordat uw project wordt gecompileerd. Als het tabblad van Android Studio bijvoorbeeld klaagt over incompatibele minSdkVersions, is de kans groot dat de API's die door de bibliotheek worden gebruikt, niet compatibel zijn met de versies van het Android-platform die zijn gedefinieerd in het build.gradle-bestand van uw project. Evenzo, als Android Studio klaagt over de buildToolsVersion van uw project, is er waarschijnlijk een verschil tussen de versie die is gedefinieerd in de bibliotheek en de versie die elders in uw project is gedefinieerd. In beide scenario's moet u de waarden controleren die in beide build.gradle-bestanden zijn gedefinieerd en deze dienovereenkomstig wijzigen.

Probleemoplossen

Wanneer u werkt met ieder soort software van derden, als algemene regel zult u eerder incompatibiliteit, bugs en algemene problemen tegenkomen vreemd gedrag, vergeleken met wanneer u een softwarepakket gebruikt dat door hetzelfde team is ontwikkeld en waarbij elk stukje van de puzzel specifiek is ontworpen om samen te werken.

Als je problemen ondervindt na het toevoegen van een bibliotheek aan je project, probeer dan de volgende oplossingen:

  • Controleer of u niet per ongeluk meerdere versies van dezelfde bibliotheek heeft toegevoegd. Als Android Studio een foutmelding "meerdere DEX-bestanden definiëren ..." rapporteert, heeft u mogelijk dezelfde bibliotheek meer dan eens aan uw project toegevoegd. U kunt de afhankelijkheden van uw module bekijken door ‘Bestand> Projectstructuur’ te selecteren op de werkbalk van Android Studio, vervolgens de module te selecteren die u wilt onderzoeken en op het tabblad ‘Afhankelijkheden’ te klikken. Als een bibliotheek meerdere keren in dit venster verschijnt, selecteer dan het duplicaat en klik op het kleine ‘-’ pictogram om het te verwijderen.
  • Zoeken op het internet. Er is altijd een kans dat andere mensen hetzelfde probleem hebben ondervonden als jij, dus voer een snelle Google-zoekopdracht uit om te zien of iemand over dit probleem op forums of communities zoals Stackoverflow heeft gepost. Je kunt zelfs geluk hebben en een blog of tutorial vinden met instructies voor het oplossen van dit exacte probleem.
  • Reinig en herbouw uw project. Soms is het voldoende om ‘Build> Clean project’ te selecteren op de werkbalk van Android Studio, gevolgd door ‘Build> Rebuild project’.
  • En als al het andere faalt ... Om software van derden correct te laten werken, is soms wat vallen en opstaan ​​vereist, dus als er een alternatieve methode is om de door u gekozen bibliotheek te importeren, is het altijd de moeite waard om te proberen. Het feit dat je project weigert te compileren nadat je een gekloonde repository hebt geïmporteerd, betekent niet noodzakelijkerwijs dat het dezelfde reactie zal hebben als je probeert dezelfde bibliotheek te gebruiken als externe afhankelijkheid.

Afsluiten

In dit artikel hebben we gekeken hoe je elke bibliotheek die je op GitHub ontdekt, kunt toevoegen aan je Android-project, ongeacht of die bibliotheek wordt gedistribueerd via JCenter of Maven Central. En zelfs als u geen idee hebt welke repository of compilatie-instructie u moet gebruiken, dan heeft u altijd de mogelijkheid om JitPack te gebruiken of de code van de bibliotheek te klonen.

Heb je geweldige Android-bibliotheken op GitHub ontdekt? Laat het ons weten in de reacties hieronder!

In 2012 debuteerde Lilyhammer al de eerte originele Netflix-erie op de treamingdient. Het maakte niet veel uit, maar die how wa nog maar het begin. inddien ging een ton originele Netflix-erie in premi...

Iedereen houdt van eten, maar ommigen van on werkelijk hou van eten. En natuurlijk, al menen van iet houden, zijn er zeker tv-how, film en documentaire over. Hier zijn enkele van de bete gezondheid- e...

Keuze Van Lezers