Android Studio – Importeren van externe bibliotheek / jar

Ik heb onlangs Android-studio gedownload om Android-applicaties te ontwikkelen (ik kom uit Eclipse), en ik heb problemen met behulp van externe bibliotheken en / of externe potbestanden naast mijn eigen project. Opmerking : De volgende tests zijn uitgevoerd op een nieuw applicatieproject gemaakt vanuit het nummer in Android Studio.

Voorbeeld 1: JAR import.

  1. Download een verse kopie van de Admobs SDK van Google.

  2. Kopieer de Bibliotheek JAR GoogleAdMobAdsSdk-6.4.1.jarnaar de projecten / libs / map.

  3. In de Project Explorer, klik met de rechtermuisknop op de nieuw toegevoegde bibliotheek.jar en klik op ‘Toevoegen als bibliotheek’.

Technisch gezien op dit punt alles werkt , importeert het prima, de Layout-editor toont een voorbeeld van de AdViewWidget en dat allemaal. Het alleen probleem is dat het niet succesvol compileert.

log van console:

Gradle: 
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':APITests:compilePaidDebug'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Could not execute build using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.6-bin.zip'.

Ik heb geprobeerd gradlew compileDebug --stacktrace, en het probleem lijkt te zijn dat het ondanks de klassen met succes in de Code & AMP kan importeren; Design Editor, op compileertijd, kan het de invoer niet oplossen. Dit is het relevante deel van het logboek: (volledige stacktrace hier )

java:6: error: package com.google.ads does not exist
import com.google.ads.AdRequest;    
java:7: error: package com.google.ads does not exist
import com.google.ads.AdView;
java:11: error: cannot find symbol
AdView mAdView;
symbol:   class AdView
location: class MainActivity
java:22: error: cannot find symbol
mAdView = (AdView)this.findViewById(R.id.adView);
symbol:   class AdView
location: class MainActivity
java:23: error: cannot find symbol
mAdView.loadAd(new AdRequest());
symbol:   class AdRequest
location: class MainActivity
5 errors
:Test:compileDebug FAILED

Maar nogmaals, de invoer werkt goed in de editor en de afhankelijkheid is er:

Het is ook de moeite waard om op te merken dat, zonder een poging om een ​​bibliotheek / pot toe te voegen, de projecten prima compileren.

Ik heb vervolgens geprobeerd het build.gradle-bestand te bewerken om de nieuwe lib als volgt op te nemen:

dependencies {
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
}

Deze keer compileer het met succes, maar de app dwingt nu, zo blijkbaar, zo blijkbaar kan het geen specifieke klasse van de lib in het aanvraagpakket vinden.

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ads.AdView" on path: /data/app/com.foo.test-1.apk

Alle ideeën?


1, Autoriteit 100%

dus,

Stappen om te volgen om een ​​pot met een pot met uw project te importeren met behulp van Android Studio 0.1.1:

  • Download het bibliotheek.jar-bestand en kopieer het naar uw / libs / map in uw applicatieproject.
  • Open het build.gradle-bestand en bewerk uw afhankelijkheden om het nieuwe .jar-bestand op te nemen:

compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')

  • Bestand – & GT; Sluiten project
  • Open een opdrachtprompt op de rootlocatie van uw project, I.E 'C:\Users\Username\AndroidStudioProjects\MyApplicationProject\'
  • in de opdrachtprompt, typ gradlew clean, wacht tot het klaar is.
  • Open uw aanvraagproject in Android Studio.
  • Test Run uw applicatie en het moet succesvol werken.

2, Autoriteit 31%

U hoeft het project niet te sluiten en naar de opdrachtregel te gaan om rang te roepen: schoon.
Ga naar Build- & GT; REBUILD PROJECT


3, Autoriteit 16%

Eenvoudige manier en het werkt voor mij. Android Studio gebruiken 0.8.2.

  1. Sleep JAR-bestand onder libs.
  2. Druk op “Sync-project met de knop van de gradle-bestanden”.


4, Autoriteit 10%

Hier is hoe ik het specifiek voor de ADMOB SDK JAR -bestand gooide:

  1. Sleep uw jar-bestand in de LIBS-map.
  2. Klik met de rechtermuisknop op de jarbestand en selecteer Bibliotheek toevoegen
    Nu is het JAR-bestand een bibliotheek, laat het toevoegen aan het compileerpad
  3. Open de build.gradlebestand (opmerking Er zijn twee build.gradlebestanden tenminste, gebruik de root één gebruik niet in uw project Scope) .
  4. Zoek de sectie Afhankelijkheden (voor mij probeerde ik het AMOBOB -GOOGLEADMOBADSSDK JAR-bestand)
    b.g

    dependencies {
       compile files('libs/android-support-v4.jar','libs/GoogleAdMobAdsSdk-6.3.1.jar')
    }
    
  5. Laatste ingaan op settings.gradleen zorg ervoor dat het er zoiets uitziet:

    include ':yourproject', ':yourproject:libs:GoogleAdMobAdsSdk-6.3.1'
    
  6. Tot slot, ga naar Build – & GT; REBUULD PROJECT

5, Autoriteit 2%

U exporteert het project van Eclipse en importeer vervolgens het project van Android Studio, dit zou uw probleem moeten oplossen, een Eclipse-project opent zonder deze uit Android Studio te importeren, kunt u problemen bekijken:
(Excuseer mijn taal, ik spreek Spaans.)
http://developer.Android.com/intl/es/sdk/installing /migrate.html


6, Autoriteit 2%

Ik had het probleem niet in staat om JAR-bestand in Libs-map in Android Studio te laden.
Als u JAR-bestand in Libs-map hebt toegevoegd, geopend gewoon build.gradleBestand op en sla deze op zonder iets anders te bewerken. Als u deze regel

hebt toegevoegd

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

Sla het op en maak het project schoon .. In de volgende build time laadt Android Studio het JAR-bestand.

Ik hoop dat dit helpt.


7

Ik gebruik Android Studio 0.5.2. Dus als uw versie lager is dan de mijne, werkt mijn antwoord mogelijk niet voor u.

3 manieren om een ​​nieuwe JAR aan uw project toe te voegen:

  1. Menu onder bestanden – & gt; projectstructuur
  2. Druk gewoon op ‘f4
  3. onder Projectnavigatie, Rechts Rechts klinkt op een Java-bibliotheek en een contextmenu wordt weergegeven en klik vervolgens op ‘open bibliotheekinstellingen

Er verschijnt een projectstructuurvenster.

Klik op de linkerkolom op ‘Libraries’ en kijk dan naar het rechterdeelvenster waar er een plusteken ‘+’ is en klik erop en voer vervolgens het pad naar uw nieuwe bibliotheek in.

Controleer of de nieuwe bibliotheek zich onder de map ‘Project \ Libs \’ bevindt, anders krijg je een kapotte link wanneer je je projectbroncode opslaat.


8

Ik gebruik momenteel Android Studio 1.4.

Voor het importeren en toevoegen van bibliotheken gebruikte ik de volgende stroom – & GT;

1. Press **Alt+Ctr+Shift+S** or Go to **File --> Project** Structure to open up the Project Structure Dialog Box.
2. Click on **Modules** to which you want to link the JAR to and Go to the Dependency Tab.
3. Click on "**+**" Button to pop up Choose Library Dependency.
4. Search/Select the dependency and rebuild the project.

Ik heb de bovenstaande aanpak gebruikt om ondersteunende v4- en v13-bibliotheken te importeren.

Ik hoop dat dit nuttig is en de stroom opruimt.


Antwoord 9

Ik gebruik android studio 0.8.6 en voor het importeren van externe bibliotheek in project , plak die bibliotheek in libs map en binnen build.gradle schrijfpad van die bibliotheek binnen afhankelijkheden zoals deze
bestanden compileren(‘libs/google-play-services.jar’)


Antwoord 10

Ga in Android Studio (de mijne is 2.3.1) naar Bestand – Projectstructuur:


Antwoord 11

Controleer de vereisten voor de libs-versie. De lib probeert mogelijk een methode aan te roepen vanaf een hogere Android-versie. Probeer de compatibiliteitsbibliotheken voor apps toe te voegen.

Als al het andere faalt, probeer dan over te schakelen van een Gradle-build naar een Eclipse-build.

Verwijder en herstructureer uw mappen naar de eclipse-stijl en verwijder alles behalve uw code. Laad vervolgens het project opnieuw met uw bibliotheken.

Zodra het is uitgevoerd, gaat u desgewenst terug naar Gradle.

Other episodes