Próbuję użyć nowego Androida Studio, ale wydaje mi się, że nie działa poprawnie.
Korzystam z biblioteki Gson do serializacji / deserializacji obiektów JSON. Ale biblioteka jakoś nie została uwzględniona w kompilacji.
Stworzyłem nowy projekt z funkcją MainActivity . Skopiowałem gson-2.2.3.jar do folderu / libs i dodałem go jako zależność od biblioteki (prawy przycisk myszy-> Dodaj jako bibliotekę). Obejmuje słoik w Android Studio, więc można się do niego odwoływać z plików źródłowych.
Kiedy próbuję uruchomić projekt, nie można go skompilować, więc dodałem:
compile files('libs/gson-2.2.3.jar')
do zależności w pliku de .gradle. Następnie kompiluje się poprawnie, ale po uruchomieniu aplikacji otrzymuję ClassDefNotFoundException
.
Czy ktoś wie, co robię źle?
Odpowiedzi:
Walczyłem z tym samym od wielu godzin, próbując doprowadzić słoik Gson do działania. W końcu go złamałem - oto kroki, które podjąłem:
gson-2.2.4.jar
) wlibs
folderzeUpewnij się, że
compile files('libs/gson-2.2.4.jar')
jest w twoimbuild.gradle
pliku (lubcompile fileTree(dir: 'libs', include: '*.jar')
jeśli używasz wielu plików jar)Edycja: Użyj
implementation files('libs/gson-2.2.4.jar')
(lubimplementation fileTree(dir: 'libs', include: '*.jar')
) w Android Studio 3.0+Wykonaj czystą kompilację (prawdopodobnie możesz to zrobić dobrze w Android Studio, ale aby upewnić się, że nawigowałem w terminalu do folderu głównego mojej aplikacji i
gradlew clean
pisałem. Jestem w systemie Mac OS X, polecenie może być inne w twoim systemiePo wykonaniu powyższych czterech czynności zaczęło działać dobrze. Myślę, że krok „Dodaj jako bibliotekę” był tym, za którym wcześniej tęskniłem i nie zadziałał, dopóki go nie wyczyściłem.
[Edytuj - dodano
build.gradle
krok, który jest również konieczny, jak zauważyli inni]źródło
compile fileTree(dir: 'libs', include: '*.jar')
repositories { mavenCentral() }
i zastąpićcompile files(...)
linię,compile 'com.google.code.gson:gson:2.2.4'
a gradle automatycznie pobierze plik jar i zarządza nim. Pozwala to SCM na śledź tylko pliki kodu źródłowego, a nie bibliotekibuild.gradle
: compile fileTree (reż: 'libs', include: ['* .jar'])Oto instrukcje dodawania lokalnego pliku jar jako biblioteki do modułu:
Utwórz folder „libs” na najwyższym poziomie katalogu modułu (ten sam katalog, który zawiera katalog „src”)
W
build.gradle file
dodatku następujących tak, że zamknięcie ma zależności:Android Studio powinien już mieć skonfigurowane opakowanie gradlew. Z wiersza polecenia przejdź do najwyższego poziomu projektu (katalogu, w którym znajduje się
gradlew
plik).Uruchom
./gradlew assemble
. To powinno skompilować projekt z biblioteką. W razie potrzeby może być konieczne naprawienie błędów w pliku build.gradle.Aby Android Studio rozpoznał lokalne pliki jar jako biblioteki do obsługi podczas kodowania w IDE, musisz wykonać kilka dodatkowych kroków:
4.1 Kliknij moduł prawym przyciskiem myszy i wybierz
Open Library Settings
.4.2 W lewym panelu okna dialogowego wybierz
Libraries
.4.3 Kliknij
+
znak nad panelem drugi od lewej ->Java
4.4 Wybierz lokalny słoik i dodaj go do projektu.
Może być konieczne ponowne uruchomienie powyższego
./gradlew
poleceniaźródło
W projekcie kliknij prawym przyciskiem myszy
Wykonaj poniższe zrzuty ekranu:
1:
2:
3:
Zobaczysz to:
źródło
W Androidzie Stuido lubię używać Gradle do zarządzania biblioteką Gson.
Dodaj poniżej zależności w pliku build.gradle.
Wszystko w porządku.
Możesz także zobaczyć ten post. Najlepszy sposób na zintegrowanie biblioteki innej firmy w Android Studio
źródło
IIRC, samo użycie „Dodaj jako bibliotekę” nie wystarczy, aby skompilowało się z projektem.
Sprawdź pomoc firmy Intellij na temat dodawania bibliotek do projektu
To, co powinno Cię najbardziej zainteresować, to:
Jeśli biblioteka nie pojawia się w oknie dialogowym, dodaj ją w ustawieniach bibliotek, bezpośrednio pod modułami.
Nie trzeba
compile files()
już dodawać , a biblioteka powinna zostać poprawnie dodana do projektu.źródło
Wszystkie te rozwiązania są przestarzałe. Teraz w Android Studio jest to naprawdę łatwe:
Plik> Nowy moduł ...
Następny ekran wygląda dziwnie, jakbyś wybierał jakiś widżet lub coś, ale trzymaj go na pierwszym obrazku, a poniżej przewiń i znajdź „Importuj plik JAR lub .AAR”
Następnie weź
Project Structure
z menu Plik. Wybierzapp
w otwartym oknie, a następnie wybierzdependencies
, a następnie naciśnijgreen plus button
, wybierz,module dependency
a następnie wybierz moduł zaimportowany, a następnie naciśnijOK
źródło
źródło
„kompiluj pliki ...” działało dla mnie, ale już nie. po dużym bólu stwierdziłem, że zamiast tego działa to:
compile fileTree(dir: 'libs', include: '*.jar')
Nie mam pojęcia, dlaczego to miało znaczenie, ale przynajmniej ta cholerna rzecz działa teraz.
źródło
To rozwiązało mój problem. Spróbuj, jeśli ktoś chce więcej szczegółów, daj mi znać.
źródło
Zrobiłem to, dodając tylko jedną linię do
build.gradle
:Nie zapomnij kliknąć
Sync now
w prawym górnym rogu.Używam Androida Studio 1.0.1.
źródło
fileTree
robi linia?Uważam, że Dependency Manager z Android Studio jest dość przydatny i potężny do zarządzania zależnościami innych firm (jak wspomniany tutaj gson). Udostępnienie przewodnika krok po kroku, który działał dla mnie (UWAGA: te kroki są testowane dla Androida Studio 1.6 i nowszych wersji na platformie Windows).
Krok 1: Idź do „Kompiluj> Edytuj biblioteki i zależności ...” otworzy się okno dialogowe „Struktura projektu”
Krok 2: Wybierz „aplikację”, a następnie zakładkę „Zależności”. Następnie wybierz „Dodaj> 1 zależność biblioteki”
Krok 3: Zostanie wyświetlone okno dialogowe „Wybierz zależność biblioteki”, określ „gson” w wyszukiwaniu i naciśnij przycisk „Szukaj”
Krok 4: Pożądana zależność zostanie wyświetlona na liście wyszukiwania, wybierz com.google.code.gson: gson: 2.7 (jest to najnowsza wersja w momencie, gdy napisałem odpowiedź), naciśnij OK
Naciśnij OK w oknie dialogowym „Struktura projektu”. Gradle odpowiednio zaktualizuje skrypty kompilacji.
Mam nadzieję, że to pomoże :)
źródło
Android Studio 2.3.3
Po wykonaniu powyższych trzech czynności zaczęło działać dobrze.
źródło
Pobierz i skopiuj swój
.jar
plik dolibs
folderu, a następnie dodaj tę linię do build.gradle:Nie zapomnij kliknąć „Synchronizuj teraz”
źródło
Możesz to zrobić za pomocą dwóch opcji.
pierwszy prosty sposób.
Skopiuj plik .jar do schowka, a następnie dodaj go do folderu libs. Aby zobaczyć folder libs w projekcie, wybierz projekt z combobox nad folderami.
następnie kliknij prawym przyciskiem myszy plik .jar i kliknij dodaj jako bibliotekę, a następnie wybierz moduł, a następnie ok. Plik .jar można zobaczyć w pliku build.gradle w bloku zależności.
Po drugie: możemy dodać plik .jar do modułu, importując ten plik .jar jako moduł .jar, a następnie dodaj ten moduł do dowolnego modułu, który chcemy.
moduł importu ---> wybierz plik .jar -> niż importuj jako .jar -
Następnie CTRL + ALT + SHIFT + S -> projektu wytrzymałość -> wybierz moduł, który chcesz, aby dodać słoik -> Zależności -> Zależność modułu. build.gradle modułu zostanie zaktualizowany automatycznie.
źródło
Zrobiłem ponad 3 kroki i jego urok pracy dla mnie.
(Używam Android Studio 2.1.2)
Krok 1
compile 'com.squareup.okhttp3:okhttp:3.3.1'
) do skryptu budowania stopni w build.gradle (Module: app) .Krok 2: Kliknij prawym przyciskiem myszy folder aplikacji -> Nowy -> Moduł
Krok 3: Kliknij opcję Importuj pakiet JAR / .AAR, a następnie przejrzyj swój pakiet. jako przykład: OkHttp.jar
źródło
W systemie Android Studio 3+:
Powinieneś być w stanie po prostu skopiować plik jar do folderu libs bezpośrednio pod folderem aplikacji.
... myproject \ app \ libs \ myfile.jar
Następnie wybierz Pliki projektu z menu rozwijanego w oknie Projekty, kliknij prawym przyciskiem myszy projekt, wybierz Synchronizuj, aby zobaczyć plik w plikach projektu. Automatycznie doda zależności w pliku stopni (Moduł: aplikacja).
Oto inne rozwiązanie:
Przejdź do widoku Pliki projektu (wybierz Pliki projektu z menu rozwijanego).
Wybierz Nowy ... Katalog, utwórz folder o nazwie libs bezpośrednio w aplikacji.
Otwórz Eksploratora plików, skopiuj i wklej plik jar do folderu libs.
W Android Studio kliknij prawym przyciskiem myszy plik jar i wybierz Dodaj jako bibliotekę ... z menu podręcznego.
Plik powinien zostać wyświetlony na liście zależności w pliku stopni:
Otwórz plik Java i dodaj tam instrukcję importu:
źródło
Umieść
.jar
pliki wlibs
folderze projektu Android.Następnie dodaj ten wiersz kodu do pliku oceny aplikacji:
W przypadku wersji Androida 3.0 i nowszej wersji lepiej jest użyć tego:
źródło
W przeciwieństwie do Eclipse nie musimy pobierać słoika i umieszczać go w folderze / libs. Gradle obsługuje te rzeczy, musimy tylko dodać zależności Gradle, Gradle pobiera je i umieszcza w pamięci podręcznej gradle.
Musimy dodać zależności, ponieważ:
zależności {wdrożenie 'com.google.code.gson: gson: 2.2.4'}
to wszystko Jednak możemy również pobrać jar i dodać to jako bibliotekę, ale najlepszą praktyką jest dodanie zależności Gradle.
źródło
źródło
Krok 1: Teraz
app folder
powinieneś zobaczyćlibs
, jeśli go nie widzisz, a następnie utwórz go .Krok 2:
Drag & Drop the .jar file here
może pojawić się monit"This file does not belong to the project"
, wystarczy kliknąćOK
przycisk.Krok 3: Teraz powinieneś zobaczyć plik jar w folderze libs , kliknij prawym przyciskiem myszy plik jar i wybierz
"Add as library", Click OK for prompt "Create Library"
Krok 4: Teraz ten słoik został dodany.
źródło
Utwórz bibliotekę lib. Dodaj swój plik .jar. Kliknij go prawym przyciskiem myszy, a zobaczysz, że dodaj słoik jako zależność. Kliknij na to. To wszystko, co musisz zrobić. Można znaleźć zależności dodane do pliku build.gradle.
źródło
1) utwórz folder „your_libs” w folderze Project / app / src.
2) Skopiuj plik jar do tego folderu „your_libs”
3) W Android Studio przejdź do Plik -> Struktura projektu -> Zależności -> Dodaj -> Zależność pliku i przejdź do pliku jar, który powinien znajdować się w obszarze „src / your_libs”
3) Wybierz plik jar i kliknij „Ok”
a następnie możesz zobaczyć na swoim build.gradle w następujący sposób: skompiluj pliki ('src / your_libs / your.jar')
źródło
W Android Studio 1.1.0. Rozwiązałem to pytanie, wykonując następujące czynności:
1: Umieść plik jar w katalogu libs. (w Finderze)
2: Otwórz ustawienia modułu, przejdź do Zależności, w lewym dolnym rogu znajduje się przycisk plus. Kliknij przycisk plus, a następnie wybierz „Zależność pliku”. Tutaj możesz zobaczyć plik jar. Wybierz i zostanie rozwiązany.
źródło
Przeczytałem wszystkie odpowiedzi tutaj i wszystkie wydają się obejmować stare wersje Android Studio!
Dzięki projektowi utworzonemu w Android Studio 2.2.3 po prostu musiałem utworzyć
libs
katalog podapp
i umieścić tam mój słoik. Zrobiłem to z moim menedżerem plików, nie trzeba klikać ani edytować niczego w Android Studio.Dlaczego to działa? Otwórz Kompiluj / Edytuj biblioteki i zależności, a zobaczysz:
źródło
W systemie Mac OS X:
Dodaj słoik jako bibliotekę (przeciągnij słoik do bibliotek, kliknij prawym przyciskiem myszy dodaj jako lib)
Dodaj instrukcję kompilacji do
build.grade
Zainstaluj
gradle v1.6
(użyj Homebrew)gradle clean (odbudowa Androida nie działała)
To mnie załatwiło.
źródło
Jak wielu wcześniej wspomniałem, należy dodać
do pliku build.gradle.
Mam jednak projekt w Android Studio, który został migrowany z Eclipse iw tym przypadku folder „libs” nosi nazwę „lib”, więc usunięcie „s” rozwiązało problem.
źródło
libs
folder na poziomieapp
.jars
w tym projekcie.libs
folderze,add library
Zauważyłem CTRL+ ALT+ SHIFT+ S-> strukturę projektu -> moduł aplikacji -> Zależności " początkowo miałem wpis jak
(dir: 'libs', include: '*.jar')
poniżejcompile-option
. A po dodaniu słoika zgodnie z powyższymi krokami,build.gradle
otrzymałem wpisy dla nowego dodanego sam słoik.źródło
W Android Studio 2.1 postępuję w ten sposób,
Idź do aplikacji -> src-> main -> folder zasobów (jeśli nie jest dostępny, utwórz go) -> umieść pliki JAR
W swoim build.gradle dodaj taką zależność,
Synchronizuj teraz. Teraz Twoje pliki JAR są gotowe do użycia.
źródło
W przypadku nowszego Androida 1.0.2 w pliku build.gradle znajduje się już następujący element
Dodaj słoik z biblioteką do folderu libs -> kliknij prawym przyciskiem myszy bibliotekę -> kliknij dodaj jako bibliotekę -> poprosi cię o dodanie projektu do - - wybierz projekt -> kliknij ok Następujący wiersz zostanie automatycznie dodany do kompilacji .gradle
To mi zrobiło. nic więcej nie było wymagane. Pokazałem to dla Androida Aquery innej biblioteki innej firmy dla Androida.
źródło
Moja odpowiedź polega w zasadzie na zebraniu niektórych poprawnych, ale niepełnych odpowiedzi podanych powyżej.
Dodaj następujące:
Umożliwi to obsługę dwóch różnych sposobów dodawania zależności.
compile fileTree(dir: 'libs', include: ['*.jar'])
(Jak wspomniano @Binod) informuje kompilator, aby zajrzeć pod bibliotekami dla dowolnego folderu słoika. Dobrą praktyką jest tworzenie takiego folderu „libs”, który będzie zawierał pakiety jar, z których musi korzystać nasza aplikacja.Pozwoli to również na obsługę zależności Maven. Kompilacji
'com.google.code.gson:gson:2.3'
(jak wspomniano przez @saneryee) jest inny zalecany sposób, aby dodać zależności, które są w centrum zdalnego repozytorium, a nie w naszym / libs „lokalnym repozytorium”. Zasadniczo informuje gradla, aby szukał tej wersji tego pakietu, i informuje kompilator, aby wziął go pod uwagę podczas kompilowania projektu (umieszczenie go w ścieżce klas)PS: Używam obu
źródło