Hoe voeg ik een bibliotheekproject toe aan Android Studio?

Alexander Kulyakhtin 08/22/2017. 29 answers, 544.786 views
android android actionbarsherlock android-library android-studio android-studio

Hoe voeg ik een bibliotheekproject (zoals Sherlock ABS) toe aan Android Studio ?

(Niet bij de oude ADT Eclipse-bundel, maar naar de nieuwe Android Studio .)

4 Comments
25 Daniel Smith 05/21/2013
Ja het uitzoeken was veel meer verwarrend dan het had moeten zijn ... niet alsof het beter was in de verduistering.
3 user1785900 01/19/2014
De YouTube-video How to Add Libraries to Android Studio legt het proces uit.
1 craned 10/16/2014
Als u Gradle , zie dit StackOverflow-antwoord .
1 Simon 12/20/2014
Hier is een video die ik erg nuttig vond: youtube.com/watch?v=1MyBO9z7ojk

29 Answers


froger_mcs 05/23/2017.

Update for Android Studio 1.0

Aangezien Android Studio 1.0 is vrijgegeven (en veel versies tussen v1.0 en een van de eerste van de tijd van mijn vorige antwoord), is er een aantal dingen veranderd.

Mijn beschrijving is gericht op het toevoegen van extern bibliotheekproject met de hand via Gradle-bestanden (om het proces beter te begrijpen). Als u een bibliotheek wilt toevoegen via de Android Studio-maker, controleer dan het onderstaande antwoord met een visuele gids (er zijn enkele verschillen tussen Android Studio 1.0 en die van screenshots, maar het proces is zeer vergelijkbaar).

Voordat u een bibliotheek bij uw project bij de hand voegt, overwegen u de externe afhankelijkheid toe te voegen. Het zal niet in je projectstructuur vallen. Bijna elke bekende Android-bibliotheek is beschikbaar in een Maven- repository en de installatie kost slechts één regel code in het app/build.gradle bestand:

dependencies {
     compile 'com.jakewharton:butterknife:6.0.0'
} 

Adding the library

Hier is het volledige proces van het toevoegen van externe Android-bibliotheek aan ons project:

  1. Maak een nieuw project via de Android Studio-maker. Ik noemde het HelloWorld .
  2. Hier is de originele projectstructuur gemaakt door Android Studio:
HelloWorld/
      app/
           - build.gradle  // local Gradle configuration (for app only)
           ...
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ... 
  1. In de hoofdmap ( HelloWorld/ ), maak een nieuwe map: /libs waarin we onze externe bibliotheken plaatsen (deze stap is niet nodig - alleen voor het behouden van een schonere projectstructuur).
  2. Plak uw bibliotheek in de nieuw gemaakte /libs map. In dit voorbeeld heb ik PagerSlidingTabStrip bibliotheek gebruikt (download zip van GitHub, geef de bibliotheek directory naar "PagerSlidingTabStrip" en kopieer het). Hier is de nieuwe structuur van ons project:
HelloWorld/
      app/
           - build.gradle  // Local Gradle configuration (for app only)
           ...
      libs/
           PagerSlidingTabStrip/
                - build.gradle // Local Gradle configuration (for library only)
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ... 
  1. Bewerk instellingen.gradle door uw bibliotheek toe te voegen om deze op te include . Als u een aangepast pad gebruikt zoals ik deed, moet u ook de projectmap definiëren voor onze bibliotheek. Een hele settings.gradle zou er als volgt uitzien:

    include ':app', ':PagerSlidingTabStrip'
    project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip') 

5.1 Als u de fout 'Standaardconfiguratie' geconfronteerd heeft, probeer dan dit in plaats van stap 5,

include ':app'
    include ':libs:PagerSlidingTabStrip' 
  1. In app/build.gradle voeg ons bibliotheekproject toe als een afhankelijkheid:

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(":PagerSlidingTabStrip")
    } 

6.1. Als u stap 5.1 gevolgd hebt, volg dan dit in plaats van 6,

dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'

        compile project(":libs:PagerSlidingTabStrip")
    } 
  1. Als uw bibliotheekproject geen build.gradle bestand heeft, moet u het handmatig maken. Hier is een voorbeeld van dat bestand:

    apply plugin: 'com.android.library'
    
        dependencies {
            compile 'com.android.support:support-v4:21.0.3'
        }
    
        android {
            compileSdkVersion 21
            buildToolsVersion "21.1.2"
    
            defaultConfig {
                minSdkVersion 14
                targetSdkVersion 21
            }
    
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    res.srcDirs = ['res']
                }
            }
        } 
  2. Daarnaast kunt u een globale configuratie voor uw project maken dat SDK-versies bevat en toolsversie voor elke module opbouwt om consistentie te behouden. gradle.properties bestand gradle.properties en voeg regels toe:

    ANDROID_BUILD_MIN_SDK_VERSION=14
    ANDROID_BUILD_TARGET_SDK_VERSION=21
    ANDROID_BUILD_TOOLS_VERSION=21.1.3
    ANDROID_BUILD_SDK_VERSION=21 

    Nu kunt u het gebruiken in uw build.gradle bestanden (in app en bibliotheken modules) zoals hieronder:

    //...
    android {
        compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
        buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
    
        defaultConfig {
            minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
            targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
        }
    }
    //... 
  3. Dat is alles. Klik gewoon op, synchroniseer het project met het Gradle-icoon Synchroniseren met Gradle . Uw bibliotheek moet beschikbaar zijn in uw project.

Google I / O 2013 - Het nieuwe Android SDK Build System is een geweldige presentatie over het bouwen van Android apps met Gradle Build System: Zoals Xavier Ducrohet zei:

Android Studio gaat alles over bewerken en debuggen en profileren. Het gaat niet om meer te bouwen.

In het begin kan het een beetje verwarrend zijn (vooral voor degenen die met Eclipse werken en de mier nog nooit gezien hebben, zoals ik;)), maar op het einde geeft Gradle ons geweldige kansen en het is de moeite waard om dit bouwsysteem te leren.

5 comments
6 victor n. 05/24/2013
Hallo daar, u heeft het echte probleem perfect uitgelegd. Stem je antwoord op, zodat andere mensen het kunnen zien. Een klein ding dat niet aan mijn kant was, is het refereren van de ondersteuningsbibliotheek in de build.gradle van de afhankelijkheid. Zoals blijkt ': Project / libs ...' werkte om een ​​of andere reden niet. Ik moest de projectidentificatie weggooien. Dus 'libs / ...'. En het componeerde goed. Één opmerking is dat deze twee manieren van het verwijzen van paden of projecten verwarrend zijn. Ik hoop dat er in de toekomst een eenvoudige en uniforme regeling komt. Er is geen reden waarom de oorspronkelijke oplossing niet zou werken.
9 Akbar ibrahim 05/24/2013
1. Was hier al lang mee lastig. Zoals victor n gezegd, werkt het refereren van het ondersteunende pot van het hoofdproject van de ActionBarsherlock-module niet. Ik moest het volgende doen om het te laten werken ... (1) Verwijder compile bestanden ('libs / android-support-v4.jar') uit het build.gradle van het project. De hoofdmodule moet alleen een project samenstellen (": bibliotheken: actionbarsherlock") . (2) Voeg compile bestanden toe ('libs / android-support-v4.jar') in plaats van bestanden te compileren (': HelloWorld / libs / android-support-v4.jar') in de build.gradle van ActionBarsherlock.
8 alicanbatur 11/07/2013
Waarom heb ik geen "Import Module" sectie, bij de optie waar u ons direct? Ik gebruik Android Studio 0.3.1
5 amalBit 02/08/2014
Import module optie mist!
147 Kyle Gobel 10/19/2014
Waarom is dit zo verward van God ?!

Sam Rad 07/01/2016.

Hier is de visuele gids:

Update voor Android Studio 0.8.2:

In Android Studio 0.8.2 ga je naar Project Structure -> onder Modules klik je gewoon op de plus knop en selecteer Import Existing Project importeren en importeer actionbarsherlock . Synchroniseer dan uw Gradle-bestanden.

Als u de fout geconfronteerd hebt

Fout: De revisie SDK Build Tools (xx.xx) is te laag. Minimum vereist is yy.yy

Open gewoon het build.gradle bestand in actionbarsherlock Directory en update de buildToolsVersion naar de voorgestelde.

android {
  compileSdkVersion 19
  buildToolsVersion 'yy.y.y' 

Android Studio 0.8.2


Menu File -> Project Structure... :

Eerste

Module -> Import Module

Tweede

Nadat u de bibliotheekmodule hebt geïmporteerd, selecteert u your projectmodule en voegt u de afhankelijkheid toe:

Derde

En selecteer dan de imported module :

voort

5 comments
29 amalBit 02/08/2014
Opties voor invoermodule niet beschikbaar in Android Studio4.3
3 toobsco42 08/25/2014
De sleutel voor het maken van dit werk en het oplossen van het pakket niet gevonden fouten was de stap Select your project module and add dependency dependencies { // ... compile project(':library') }
6 Rémy DAVID 10/06/2014
Dit zal de bibliotheekmodule in uw project kopiëren, wat niet is wat u wilt als u een gemeenschappelijke codebestand wilt delen die tussen verschillende projecten wordt gedeeld
CCJ 11/13/2015
@amalBit zijn ... ben je van de toekomst? Maar serieus, ze moeten dit simpel maken alsof het in Eclipse ADT was; Wie wil een derdepartij repo raken en in elke bouwen (eventueel) willekeurige code samenstellen? Dat ondermijnt QA en code-freeze protocollen serieus
amalBit 11/17/2015
Het was terug in beta-dagen van Android Studio 0.4.3. Wat betreft de toetreding van de derde partij repo, ID zeg, vermijd gebruik van +. Geef alleen de gewenste versie aan. Als u het nog steeds niet genoeg kunt vertrouwen, kunt u een pot (of kloon) van een repo maken en gebruiken.

Blackbelt 07/01/2016.

Gebruik menu File -> Project Structure -> Modules .

Ik ben vandaag begonnen met het te gebruiken. Het is een beetje anders.

Voor Sherlock wil je misschien hun junit.jar verwijderen of het junit.jar bestand toevoegen aan de classpath.

Als u de bibliotheek wilt importeren met behulp van een gradiënt, kunt u het toevoegen aan het gedeelte dependencies van uw build.gradle (de module van de module).

Eg

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.0'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
} 

Android Studio is aan het veranderen.

Er bestaat een sectie genaamd "Open module instellingen" als u met de rechtermuisknop klikt op een module map in het project gedeelte van Android Studio (ik gebruik versie 0.2.10).

5 comments
1 Alexander Kulyakhtin 05/16/2013
Hmm zegt het nog steeds android-apt-compiler: styles.xml: 5: error: Fout bij het ophalen van ouder voor item: Geen bron gevonden die overeenkomt met de gegeven naam 'Theme.Sherlock.Light.DarkActionBar'.
Blackbelt 05/16/2013
Onder de Sherlock Module -> Dependencies heb ik android 4.2.2 en de support Library v4
Blackbelt 05/16/2013
@ ΡяσѕρєяK naast de knop Run, is er een label met Android. Als u daar kijkt, vindt u Bewerk configuratie. Push en onder Target Device klik op "Show Chooser Dialg"
7 fish 05/16/2013
Hallo, ik heb hetzelfde probleem als Alex ("Gradle: Fout ophalen van ouder voor item: Geen bron gevonden die overeenkomt met de gegeven naam 'Theme.Sherlock.Light'.") - de Java-afhankelijkheid lijkt op te lossen, omdat de IDE beschuldigt mijn SherlockActivity niet, maar Gradle lijkt om een ​​of andere reden niet in de bronnen van ABS te kijken. Om het even welke ideeën?
4 Konrad Morawski 09/15/2013
Op Android Studio 0.2.8 is er geen sectie Modules in het venster Project Structure .

Jonathan Lin 10/14/2013.

Ik zou afhankelijkheden, Android-bibliotheken en Multi-project setup nodig lezen. Neem alstublieft een paar minuten om dit te doen.

In het bijzonder, bij een niet-jarig bibliotheekproject, lees het volgende fragment uit bovenstaande bron:

Gradle projecten kunnen ook afhangen van andere gradale projecten door een multi-project setup te gebruiken. Een multi-project setup werkt meestal door alle projecten als submappen van een bepaald hoofdproject te hebben.

Bijvoorbeeld, gegeven aan de volgende structuur:

MyProject/
 + app/
 + libraries/
    + lib1/
    + lib2/ 

We kunnen 3 projecten identificeren. Gradle zal hen verwijzen naar de volgende naam:

:app
:libraries:lib1
:libraries:lib2 

Elke project zal zijn eigen build.gradle verklaren hoe het wordt gebouwd. Daarnaast wordt er een bestand genaamd settings.gradle in de root die de projecten verklaart. Dit geeft de volgende structuur:

MyProject/
 | settings.gradle
 + app/
    | build.gradle
 + libraries/
    + lib1/
       | build.gradle
    + lib2/
       | build.gradle 

De inhoud van settings.gradle is heel simpel:

include ':app', ':libraries:lib1', ':libraries:lib2' 

Dit bepaalt welke map eigenlijk een Gradle project is.

Het app-project is waarschijnlijk afhankelijk van de bibliotheken, en dit wordt gedaan door de volgende afhankelijkheden te verklaren:

dependencies {
    compile project(':libraries:lib1')
} 

Let op dat er weinig of geen gebruik was gemaakt van Android Studio GUI om dit te laten gebeuren.

Ik gebruik momenteel git submodules om de geneste bibliotheek te koppelen aan de eigenlijke bibliotheek git repo om een ​​afhankelijkheidsruil te vermijden.

4 comments
Jonathan Lin 10/14/2013
Kindvriendelijk als je dit nuttig vond, zodat anderen de pijn kunnen vermijden en sneller kunnen bewegen.
RichieHH 03/24/2014
Zeer behulpzaam en, belangrijker nog, niet spelen op de gui-grillen van de dag.
1 dcunited001 04/20/2014
Hartelijk bedankt voor het enige antwoord dat zinvol is. Elk ander antwoord is verouderd en werkt gewoon niet. Ik probeerde niet eens in CS bij Virginia Tech omdat de hele eerste twee jaar leerden om in eclips te klikken. Het heeft geen zin gehad, maar het gradle resultaat van willekeurige klikken in een IDE doet wel.
velis 06/01/2015
Bedankt voor de git submodules tip. Ik heb voorheen een koppeling gebruikt, maar heb nu overgeschakeld naar SVN externals. Werkt perfect.

René Michel 07/01/2016.

Ik heb zojuist een makkelijke manier gevonden (in plaats van direct in de .gradle-bestanden te schrijven).

Dit is voor Android Studio 1.1.0.

  1. Menu File -> New Module... :

    Bestaande project importeren

    Klik op 'Bestaande project importeren'.

  2. Selecteer de gewenste bibliotheek en de gewenste module.

  3. Klik op afmaken. Android Studio importeert de bibliotheek in uw project. Het zal gelijktijdige bestanden synchroniseren.

  4. Voeg de geïmporteerde module toe aan de afhankelijkheden van uw project.

    Klik met de rechtermuisknop op de app map -> Open module instellingen -> ga naar het tabblad afhankelijkheden -> Klik op de '+' knop -> klik op Module afhankelijkheid.

    De bibliotheekmodule wordt dan toegevoegd aan de afhankelijkheden van het project.

    Voeg bibliotheek module toe

  5. ???

  6. Winst


Vilen 07/01/2016.

De makkelijkste manier om het externe bibliotheekproject te vinden is bijvoorbeeld (bijvoorbeeld een Facebook-bibliotheek die een map opgeslagen in de map Dependenties bevat):

  1. Voeg in settings.gradle toe

    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK') 
  2. In sectie build.gradle afhankelijkheden voegt u toe

    compile project ('facebook') 

Het enige wat er nog te doen is het project synchroniseren met gradele bestanden.

4 comments
Rajnish Mishra 03/23/2015
Hoi Vilen wat is de instellingen hier?
Vilen 04/02/2015
Hallo Rajnish. Van documentatie: settingsDir Geeft de instellingenlijst van de build weer. De instellingen directory is de directory die het instellingenbestand bevat. Retourneren: de instellingen directory. Nooit retourneren.
Rajnish Mishra 04/03/2015
De twee punten voor / afhankelijkheden zijn belangrijker om te zorgen. Uw antwoord helpt mij veel .. Bedankt
Solata 11/18/2015
NOTE: voor stringevaluatie in gradle moet u dubbel quotes (") gebruiken. Deze" save the day "voor mij.

Eugene Bosikov 07/01/2016.

Een eenvoudige manier om een ​​JAR-bestand toe te voegen als een bibliotheek aan uw Android Studio-project:

A) Kopieer uw * .jar-bestanden

B) Plak in de libs directory onder uw projecten:

Vul hier de afbeelding omschrijving in

C) Toevoegen aan build.gradle:

dependencies {
    ...
    compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
} 

B) Als uw project uit voorbeeld com.example.MYProject en bibliotheken com.example.ScanAPI dezelfde naamruimte heeft als com.example , controleert Android Studio uw bouwen en maakt u alle nodige wijzigingen in uw project. Daarna kunt u deze instellingen in het menu File -> Project Structure .

C) Als uw project en bibliotheken een andere naamruimte hebben, moet u met de rechtermuisknop op de bibliotheek klikken en selecteer 'Add as Library' en selecteer het type wat u nodig hebt.

Onthoud dat de optie "Projectstructuur" geen automatische wijzigingen doet in "build.gradle" in de huidige versie van Android Studio (0.2.3). Misschien is deze functie beschikbaar in de volgende versies.


pathe.kiran 06/27/2016.

Optie 1: Drop files in de libs / directory van het project

Het relevante build.gradle-bestand wordt dan automatisch bijgewerkt.

Optie 2: Wijzig build.gradle Bestand handmatig

Open je build.gradle bestand en voeg een nieuwe bouwregel toe aan de afsluiting van afhankelijkheden. Als u bijvoorbeeld Google Play Services wilt toevoegen, zal de affiniteitssectie van uw project er zo uitzien:

dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.android.gms:play-services:6.5.+'
   } 

Optie 3: Gebruik de gebruikersinterface van Android Studio

In het Project paneel, Control + klik op de module waar u de afhankelijkheid wilt toevoegen en selecteer Open module instellingen.

Vul hier de afbeelding omschrijving in

Selecteer het tabblad Afhankelijkheden, gevolgd door de + knop in de linkerbenedenhoek. U kunt kiezen uit de volgende lijst met opties:

  • Bibliotheekafhankelijkheid
  • Bestandsafhankelijkheid
  • Module afhankelijkheid

U kunt dan meer informatie opgeven over de afhankelijkheid die u wilt toevoegen aan uw project. Bijvoorbeeld, als u Bibliotheekafhankelijkheid kiest, toont Android Studio een lijst met bibliotheken waarmee u kunt kiezen.

Zodra je je afhankelijkheid hebt toegevoegd, controleer je je build.gradle-bestand op het moduleniveau. Het zou automatisch moeten zijn bijgewerkt om de nieuwe afhankelijkheid op te nemen.

Bron


drewan50 07/01/2016.

Als u toegang hebt tot de middelen van een bibliotheekproject, moet u ervoor zorgen dat u het bibliotheekproject / module als een "Moduleafhankelijkheid" in plaats van een "Bibliotheek" toevoegt.

1 comments
1 cosimo 04/01/2014
Ja! Jij meneer het internet! Bedankt! Ik heb gewoon een paar uur van mijn leven verspild omdat ik dat niet wist.

pandabear 07/01/2016.

Zo werkt het voor mij in Android Studio 1.5

In het project waar u een extern bibliotheekproject wilt toevoegen, ga naar het menu File -> New -> * Importeer nieuwe module **, navigeer naar het bibliotheekproject dat u wilt toevoegen aan uw project, selecteer om de 'bibliotheek'-module toe te voegen aan jouw project. U krijgt settings.gradle in uw projecten, naast de app, inclusief bibliotheek, zoiets als volgt:

include ':app', ':library' 

Voeg in build.gradle(Module :app) in de afhankelijke sectie:

Compile project(':library')

Herbouw het project, en dat is het.

* U kunt zoveel bibliotheken (modules) toevoegen als u wilt. In dat geval in settings.gradle heb je:

include ':app', ':lib1', ':lib2', ... 

En in build.gradle moet je:

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

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
} 

Adiii 07/01/2016.

U kunt dit gemakkelijk doen. Ga naar menu File -> New -> Import Module... :

Vul hier de afbeelding omschrijving in

Zoek naar de map die de module bevat. Klik op Voltooien:

Vul hier de afbeelding omschrijving in

Ga naar Project Structure en voeg Module Dependency :

Vul hier de afbeelding omschrijving in

Opmerking: als u een SDK-fout ontvangt, moet u dat bijwerken.


Dalmas 06/27/2016.

Om toe te voegen aan het antwoord: Als er in de IDE geen fout wordt weergegeven, maar als u probeert te compileren, krijg je iets zoals:

No resource found that matches the given name 'Theme.Sherlock.Light' 

Uw bibliotheekproject is waarschijnlijk samengesteld als een applicatieproject. Om dit te wijzigen, ga naar:

Menu File -> Project structure -> Facets -> [Bibliotheeknaam] -> Controleer "Bibliotheekmodule".


crossle 07/01/2016.
  1. Druk op F4 om Project Structure te tonen, klik op bibliotheken of Globale bibliotheken en klik op + om het JAR-bestand toe te voegen.
  2. Klik op Modules wat u wilt toevoegen, selecteer het tabblad Dependencies , klik op + , en voeg Bibliotheek toe.

Shakti Malik 07/01/2016.

Het bewerken van bibliotheekafhankelijkheden via de GUI is niet aan te raden, omdat die wijzigingen niet in uw build.gradle-bestand schrijven. Zo wordt uw project niet gebouwd uit de opdrachtregel. We moeten het build.gradle bestand direct als volgt bewerken.

Bijvoorbeeld, gegeven aan de volgende structuur:

Mijn project/

  • app /
  • bibliotheken /
    • lib1 /
    • Lib2 /

We kunnen drie projecten identificeren. Gradle zal hen verwijzen naar de volgende namen:

  1. : app
  2. : Bibliotheken: lib1
  3. : Bibliotheken: Lib2

Het app-project is waarschijnlijk afhankelijk van de bibliotheken, en dit wordt gedaan door de volgende afhankelijkheden te verklaren:

dependencies {
    compile project(':libraries:lib1')
} 
2 comments
Alexander Kulyakhtin 05/23/2013
Werkelijk? Vreemd, ze hebben de hele GUI en toch is het niet raadzaam. Hoe komt het?
Shakti Malik 05/23/2013
Als u via GUI bewerkt, schrijft u niet die wijzigingen in uw build.gradle-bestand. GUI-editing slaat alleen op in eigen projectdata van IntelliJ. Dit is een fout op het moment dat in toekomstige releases zal worden opgelost. U kunt dit antwoord van Google Android-Studio Team Lead stackoverflow.com/questions/16678447/... raadplegen.

Erwan 05/17/2013.

Na het importeren van de ABS Module (vanuit File> Project Structure) en ervoor te zorgen dat het Android 2.2 en Support Library v4 heeft als afhankelijkheden, krijg ik nog steeds de volgende fout als u @Alex

Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar' 

Ik heb de nieuw geïmporteerde module toegevoegd als afhankelijk van mijn hoofdappmodule en dat heeft het probleem opgelost.

3 comments
christiaanderidder 05/19/2013
Ik heb geprobeerd alle stappen inclusief het toevoegen van de module als afhankelijkheid, maar ik heb nog steeds Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'. . Het lijkt me alsof mijn hoofdproject de middelen van het bibliotheekproject (ABS) niet ziet. De IDE herkent echter de verwijzingen naar lessen en bronnen. screenshot
Calvin Chan 06/04/2013
Hier ook. Wie kan dit oplossen?
Dmitriy Tarasov 06/06/2013
Ik migreer naar IDEA 13 vanaf 12 en heb deze fout ook. Alleen re-import voor al mijn afhankelijkheden zal helpen. Verwijder alle modules handmatig, verwijder gerelateerde * .iml-bestanden en importeer je libs opnieuw

azh 02/09/2014.

Om dit probleem op te lossen, hoeft u gewoon het abs-bronpath toe te voegen aan uw projectbouwbestand, zoals hieronder:

sourceSets {
    main {
        res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
    }
} 

Dus compileer ik opnieuw zonder fouten.


Hemant 07/01/2016.

First Way Dit werkt voor MacBook.

Selecteer eerst uw builder.gradle bestand als gegeven scherm:

Vul hier de afbeelding omschrijving in

Voeg afhankelijkheden toe zoals op het geselecteerde scherm:

Vul hier de afbeelding omschrijving in

Selecteer synchronisatieproject.

Als u een fout krijgt als 'Project met pad': 'signature-pad' kon niet gevonden worden in het project 'app' 'en gebruik dan de tweede manier:

Selecteer menu File -> New -> Import Module... :

Vul hier de afbeelding omschrijving in

Nadat u op Import Module geklikt,

Vul hier de afbeelding omschrijving in

Geef de weg van de bibliotheek als mijn MacBook-pad:

Vul hier de afbeelding omschrijving in

Klik op Finish . Nu is uw bibliotheek toegevoegd.


Braunster 02/09/2014.

Als u Android Studio .0.4.0 hebt, kunt u een nieuwe map maken in uw YourApp/libraries , YourApp/libraries . Kopieer het JAR-bestand. Daarin, klik met de rechtermuisknop en "Voeg als bibliotheek toe". Nu heb je een pop-up. Selecteer gewoon je map en druk op OK, en dat is het.


ankitbumblebee 07/01/2016.

Https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 is de Dropbox-link van hoe u een JAR-bestand en een bibliotheekproject in de nieuwste versie van Android Studio 1.0.1 kunt toevoegen.

Raadpleeg de documentatie met screenshots. Het is heel makkelijk voor een nieuwe gebruiker.


passsy 05/23/2017.

Ik heb de oplossing gevonden. Het is zo makkelijk. Volg de instructies van Froger_mcs .

Zorg ervoor dat u de map 'src' een bronmap maakt in Projectstructuur -> Modules (Bronnen).

Vul hier de afbeelding omschrijving in


voghDev 05/23/2017.

Een voorbeeld van het succesvol toevoegen van een andere bibliotheek (PullToRefresh). Werkt ook voor ABS libproject.

Deze SO vraag

Deze post


Mohammad 05/23/2017.

In principe kunt u uw JAR-bestanden op drie verschillende manieren bevatten. De laatste is een externe bibliotheek die https://bintray.com/ jcenter online repository gebruikt. Maar als u het op een van de twee andere manieren doet, wordt het JAR-bestand fysiek in uw project opgenomen. Lees deze link https://stackoverflow.com/a/35369267/5475941 voor meer informatie. In dit bericht legde ik uit hoe je je JAR-bestand in Android-studio kunt importeren en heb ik alle mogelijke manieren uitgelegd.

Als samenvatting, als het zo is (lokaal adres), worden ze gedownload en deze JAR-bestanden zijn fysiek in het project:

Voer hier de afbeelding omschrijving in

Maar als het zo'n internetadres is, zijn ze externe bibliotheken (bintray.com jcenter onderdeel) en ze worden op afstand gebruikt:

Voer hier de afbeelding omschrijving in

Ik hoop dat het helpt.


Jinu 06/27/2016.

Open het app-bestand van de bouwgraadmodule en voeg uw afhankelijkheid toe. Als u de bibliotheek downloadt, importeert u enkel en bouwt als gradiënt.

Anders voegt u repositories toe in de applicatie van de zijgradige module:

repositories {
        maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
} 

De eerste repositories downloaden de bibliotheek voor u.

En compileer de gedownloade bibliotheek:

compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
        transitive = true
    } 

Als u een bibliotheek maakt, moet u het project alleen importeren als import nieuwe module.


Dharmendra Pratap 06/27/2016.

Ga in de Android-studio naar de app-map en open het build.gradle-bestand. Hier ziet u afhankelijkheden {}. Binnenin kunt u het bibliotheekproject toevoegen en synchroniseren. Na het synchroniseren van de bibliotheek wordt het toegevoegd aan uw project, en u kunt zijn functies en lessen in uw project gebruiken.


MAMASSI 07/01/2016.

Voor Android Studio:

Vul hier de afbeelding omschrijving in

Klik op Build.gradle (module: app) .

En voeg voor

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
} 

En maak in je directory 'app' een map, 'libs'. Voeg het bestand yourfile.jar toe:

Vul hier de afbeelding omschrijving in

Eindelijk compileer de Gradle Files:

Vul hier de afbeelding omschrijving in

1 comments
Badre 03/23/2016
Eerbied respectievelijk: D

Pankaj kumar 07/01/2016.

Build.gradle eenvoudig het Android-bibliotheekproject in als een module en in Build.gradle .

Toepassing van de plugin: 'com.android.library'

Vervolgens volgt u deze stappen:

  1. Klik met de rechtermuisknop op Module en selecteer Open module instellingen
  2. Selecteer afhankelijkheden, klik op + , selecteer bibliotheekafhankelijkheden en voeg de eerder ingevoerde module toe.

jobbert 07/01/2016.

Ik had een andere oorzaak van het probleem dus voor mensen:

repositories {
    mavenCentral()
} 

Verander mavenCentral () naar jcenter () en voeg toe

allprojects {
    repositories {
        jcenter()
    }
} 

Ik heb ook hetzelfde probleem ondervonden toen ik de dingen volgde.

  1. Ik importeer het bibliotheekproject in mijn AndroidStudio IDE als een module met behulp van menu File -> Importerenmenu's

  2. Toen ging ik naar mijn hoofdmodule waarin ik het bibliotheekproject als een afhankelijk project wil

  3. Klik met de rechtermuisknop op de hoofdmodule (in mijn geval is de naam een app ) -> Open module instelling -> Ga naar afhankelijkheid tab -> klik op + knop (u krijgt het aan de rechterkant van het venster) -> klik op de afhankelijkheid van de module - > Selecteer uw bibliotheekproject uit de lijst

Pas de wijzigingen toe en klik op de knop OK .

Het werkte voor mij. Ik hoop dat het ook anderen zal helpen.


monn3t 07/01/2016.

Inderdaad, aangezien versies veranderen, verandert ook de gebruikersinterface en opties die beschikbaar zijn in het menu. Na het lezen van de meeste antwoorden op deze vragen moest ik raden wat zou werken voor Android Studio 1.1.0 .

  1. Selecteer met je muis het project op hoofdniveau (hier staat de naam van je app op).

  2. Klik met de rechtermuisknop en selecteer de menuopties New, Folder, Assets Folder .

  3. Na het maken van de activa map, plak of kopieer erin, ongeacht het JAR-bestand dat u nodig heeft voor uw bibliotheek.

  4. Selecteer in het hoofdmenu van Android Studio (bovenaan het scherm) File -> Project Structure .

  5. Selecteer vervolgens uw projectnaam en ga naar het tabblad Dependencies .

  6. Klik op het plusteken ( + ) onder in het dialoogvenster en selecteer bestand afhankelijkheid.

  7. Open de nieuwste activa map, selecteer de JAR-bestanden die u hebt gekopieerd en klik vervolgens op Apply en OK .

Maak uw project schoon en herbouw.

2 comments
1 Rajnish Mishra 03/23/2015
Het maken van kopieën van potten in activa is niet een goed idee, het zal onnodig verhogen van apk grootte
monn3t 04/12/2015
Bedankt voor het advies @RajnishMishra. Ik vermoed dat, maar wat stel je in plaats daarvan voor?

Related questions

Hot questions

Language

Popular Tags