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.
-
Download een verse kopie van de Admobs SDK van Google.
-
Kopieer de Bibliotheek JAR
GoogleAdMobAdsSdk-6.4.1.jar
naar de projecten / libs / map. -
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 AdView
Widget 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.
- Sleep JAR-bestand onder libs.
- 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:
- Sleep uw
jar
-bestand in de LIBS-map. - Klik met de rechtermuisknop op de
jar
bestand en selecteer Bibliotheek toevoegen
Nu is het JAR-bestand een bibliotheek, laat het toevoegen aan het compileerpad - Open de
build.gradle
bestand (opmerking Er zijn tweebuild.gradle
bestanden tenminste, gebruik de root één gebruik niet in uw project Scope) . -
Zoek de sectie Afhankelijkheden (voor mij probeerde ik het AMOBOB -GOOGLEADMOBADSSDK JAR-bestand)
b.gdependencies { compile files('libs/android-support-v4.jar','libs/GoogleAdMobAdsSdk-6.3.1.jar') }
-
Laatste ingaan op
settings.gradle
en zorg ervoor dat het er zoiets uitziet:include ':yourproject', ':yourproject:libs:GoogleAdMobAdsSdk-6.3.1'
- 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.gradle
Bestand 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:
- Menu onder bestanden – & gt; projectstructuur
- Druk gewoon op ‘f4 ‘
- 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.