2015-04-15 27 views
15

Próbuję użyć niektórych plików .jar jako bibliotek w moim projekcie Android Studio.Dlaczego Android Studio nie rozpoznaje importu biblioteki .jar?

Szukałem, jak to zrobić, a zwykłym sposobem jest skopiowanie pliku .jar w folderze libs, a następnie dodanie go jako biblioteki. Wiem, że folder libs musi znajdować się w module "app" w widoku "projektu". Ale ta opcja dodania jako biblioteki nie pojawia się. Tak więc moim podejściem jest dodanie go ręcznie, kliknięcie prawym przyciskiem myszy na "app" i:

Otwórz ustawienia modułów/app/Dependencies/i tam dodaj pliki .jar jako zależność plików .

Następnie przejdę do mojej .class, ale sugestie importu nie pozwalają mi wybrać tych bibliotek jako import.

Próbowałem innego podejścia z widoku "android". Klikając prawym przyciskiem myszy na "app" i wybierając "nowy moduł", wybieram Importuj .JAR lub .AAR Package, a następnie robię to samo, co poprzednio z Open Module Setings, ale tym razem dodam jako Zależność od modułu.

W kabinie, plik gradle.build jest aktualizowany, dodając te zależności, ale kiedy wybierasz aktywność, aby wybrać import, nie daje mi to możliwości wyboru importu z tych.

Spędziłem cały dzień próbując rozwiązać ten problem, ale nie dostaję mojej działalności, aby rozpoznać import z tych plików, więc byłbym wdzięczny, gdyby ktoś mógł mi powiedzieć, co robię źle lub co " brak m do zrobienia.

Top-level plik build.gradle:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.1.3' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

app-level plik build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "com.myapp" 
     minSdkVersion 14 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/values-v14'] } } 

    packagingOptions { 
     exclude 'META-INF/LICENSE.txt' 
    } 
} 

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

gdzie jest twój 'build.gradle'? –

+0

@MD Aktualizowanie teraz – masmic

+0

Jeśli dodałeś .jars do 'libs', to automatycznie zostanie rozpoznane przez' compile fileTree (dir: 'libs', include: ['* .jar']) ' –

Odpowiedz

-2

Po rozmowie z MD dotarliśmy do wniosku, że mój AS nie rozpoznaje pliki .jar, więc musiałem przenieść projekt z powrotem do zaćmienia i działa tam dobrze.

+0

Android Studio zdecydowanie rozpoznaje pliki JAR. Jeśli to nie działa, musi być jakiś inny problem. –

+0

@Shivama Verma, dla shure, w inny sposób wiele osób będzie zgłaszać ten problem. W każdym razie, w moim przypadku, próbowałem wielu rzeczy i nikt nie działa. Więc może moja wersja AS ma błąd lub coś innego, co powoduje, że AS nie rozpoznaje plików .jar. – masmic

+0

@masmic Którą wersję AS używasz? Miałem ten sam problem z 1.5.1. Próbuję użyć biblioteki ksoap2 i daje ona "Nie można rozwiązać żądania symbolu" w wierszu SoapObject.request –

18

Mój obecny projekt wykorzystujący gson-2-2.4.jar i YouTubeAndroidPlayerApi.jar i kilka innych. Aby zaimportować te pliki, umieściłem je w folderze libs. Następnie przejdź do build.gradle i usuń niektóre znaki z niego i przepisz (1). Na koniec kliknij "Synchronizuj teraz" (2). Nie wiem, dlaczego mój przycisk synchronizacji enter image description here nie działa po dodaniu słoika do bibliotek, więc robię to i działa tak dobrze.

enter image description here

UPDATE

Na Android 3.xy możemy użyć Sync Project with Gradle Files lub Refresh all Gradle projects

enter image description here

+0

Tak, grałem dużo z plikiem build.gradle. Synchronizuję się ręcznie za każdym razem, gdy dodaję .jar do bibliotek, ale nawet robiąc to, działanie nie rozpoznało importów. – masmic

+0

:(oh, nie mam innej odpowiedzi na twoje pytanie Przepraszam za to .. – Robust

+1

To dmucha mnie, dlaczego to działa i kliknięcie "Projekt synchronizacji z plikiem Gradle" nie działa – tir38

10

enter image description here Po pierwsze, import ten słój, AS nie może rozpoznać ten JAR i ja nie możemy importować. A następnie wciskam prawy przycisk myszy w tym pliku JAR i wybieram "Dodaj jako bibliotekę". AS może rozpoznać ten JAR i rozwiązać problem !!

4

Z szacunkiem dla Androida Studio 1.5.1:

Trzeba skopiować i wkleić plik JAR do:

APP_NAME/app/libs

Zauważ, że folder libs będzie już istnieć. Po skopiowaniu zmień widok projektu z Androida na pliki projektu.

Otwórz folder aplikacji/libs i kliknij prawym przyciskiem myszy plik JAR, a następnie kliknij opcję Dodaj jako bibliotekę.

To powinno wystarczyć. Nie udało mi się pomyślnie użyć modułu dodawania do importowania pliku JAR.

+0

Atadycznie jest jeszcze łatwiej. Plik - Nowy - Nowy moduł i wybierz "Importuj pakiet JAR/.AAR" ze zdjęć. – Helzgate

Powiązane problemy