Najlepszy sposób na włączenie Volley (lub innej biblioteki) do projektu Android Studio


81

Widziałem różne rady, jak to najlepiej zrobić. To pytanie dotyczy tworzenia słoika. Gdzie indziej widziałem rady, aby po prostu skopiować źródło salwy do własnego projektu. Ta sekcja dotycząca bibliotek na android.com wydaje się najbardziej miarodajna. Jednak po skompilowaniu volleya nie mam biblioteki aal, podczas gdy ta sekcja mówi, że powinienem.

Więc moje pytanie jest takie: mam istniejący projekt Android Studio ze standardowym układem i repozytorium git; co powinienem zrobić, aby dodać salwę? Skąd mam to pobrać? Jak dodać go do Android Studio? Które pliki Gradle, jeśli w ogóle, muszę zmodyfikować.

Mam nadzieję, że dla tych z was, którzy zrobili to kilka razy, powinno to być chlebem i masłem, ale nie byłem w stanie znaleźć prostego opisu.

-

Aktualizacja , zgodnie z sugestią Scotta Barty.

Plik gradle.build w repozytorium volley ma tę linię.

apply plugin: 'android-library'

Zgodnie z dokumentacją : „ Projekty biblioteczne nie generują APK, generują pakiet .aar (co oznacza archiwum Androida). ” Jednak kiedy buduję projekt volley, nie jest tworzony plik .aar.

Mam wrażenie, że ponieważ Volley jest projektem biblioteki, stworzonym przez zespół Androida, najprawdopodobniej jest przeznaczony do wygenerowania i wykorzystania jako pakiet .aar. Wszelkie porady dotyczące tego, czy generowanie pliku .aar byłoby lepsze i jak to zrobić, będą mile widziane.



To powinno Cię tam znaleźć. Jeśli nadal utkniesz i masz problemy, sprecyzuj swoje pytanie lub zadaj nowe, jeśli jest znacząco inne.
Scott Barta

Jeśli chcesz używać Volley jako modułu zależności, możesz polecić link .
cmoaciopm

Zauważ, że link @ ScottBarta został oznaczony jako duplikat biblioteki sieciowej volley android .
Brian Marick

Bardzo szczegółowe wyjaśnienie, jak to osiągnąć, znajduje się pod następującym linkiem: gitsubmoduleasandroidtudiomodule.blogspot.in
Ratan

Odpowiedzi:


125

NAJNOWSZA AKTUALIZACJA:

Zamiast tego użyj oficjalnej wersji z jCenter.

dependencies {
    compile 'com.android.volley:volley:1.0.0'
}

Poniższe zależności wskazują na przestarzałą salwę, która nie jest już obsługiwana.

ORYGINALNA ODPOWIEDŹ

Możesz użyć tego w sekcji zależności pliku build.gradle, aby użyć volley

  dependencies {
      compile 'com.mcxiaoke.volley:library-aar:1.0.0'
  }

AKTUALIZACJA:

To nie jest oficjalna kopia oficjalnego Volleya. Jest regularnie synchronizowany i aktualizowany z oficjalnym repozytorium Volley, więc możesz go używać bez obaw.

https://github.com/mcxiaoke/android-volley


7
Zauważ, że nie jest to oficjalne repozytorium Volley. To po prostu coś, co ktoś przesłał do Maven Central. (AFAIK)
pjco,

2
ya Wiem, że człowiek, ale nie ma różnicy, tylko lustro, dokładnie to samo i zsynchronizowane z oficjalnym repozytorium siatkówki 1.0.1 (aktualizacja 2014.02.13). Na tym polega piękno open source, więc nie martw się, możesz z niego korzystać. github.com/mcxiaoke/android-volley
pyus13

16
Nie próbując wywołać paranoi u wszystkich, ale opiekun tego repozytorium może łatwo wślizgnąć się w jakieś podejrzane rzeczy ... Postępuj ostrożnie, jeśli osobiście nie przeprowadzasz audytu repozytorium.
mgalgs


8
Proszę zobaczyć moją odpowiedź poniżej, jest teraz oficjalny cel Volley opublikowany przez Google ( com.android.volley:volley:1.0.0)
Sam Stern

138

Jak podkreślają również inni, Volley jest oficjalnie dostępny na Github :

Dodaj tę linię do zależności gradle dla salwy:

compile 'com.android.volley:volley:1.0.0'


Aby zainstalować salwę ze źródła, przeczytaj poniżej:

Lubię zachować oficjalne repozytorium siatkówki w mojej aplikacji. W ten sposób otrzymuję go z oficjalnego źródła i mogę otrzymywać aktualizacje bez polegania na kimkolwiek innym i łagodzenia obaw wyrażanych przez inne osoby.

Dodano salwę jako podmoduł obok aplikacji.

git submodule add -b master https://github.com/google/volley.git volley

W moim settings.gradle dodano następujący wiersz, aby dodać salwę jako moduł.

include ':volley'

W mojej aplikacji / build.gradle dodałem zależność kompilacji dla projektu volley

compile project(':volley')

To wszystko! Volley może być teraz używany w moim projekcie.

Za każdym razem, gdy chcę zsynchronizować moduł volley z repozytorium Google, uruchamiam to.

git submodule foreach git pull

7
Dlaczego nie jest to preferowane rozwiązanie? Jak widzę, otrzymujesz oficjalną wersję, łatwe aktualizacje i semantyczne powiązanie między projektem a jego zależnościami. Czy jest jakiś dobry powód, aby wybrać inne metody, czy po prostu inne metody są standardową procedurą w społeczności Androida?
Andreas Hagen

2
Myślę, że jest to preferowane rozwiązanie, ale nie zostało odpowiednio udokumentowane przez Google. Poza innymi wspomnianymi powyżej obawami dotyczącymi bezpieczeństwa, pobranie go z oficjalnego źródła daje Ci kontrolę nad aktualizacją biblioteki (tak szybko lub późno, jak chcesz).
shauvik

3
wielkie dzięki. jedyne, co musiałem dodać, to lokalizacja biblioteki volley w settings.gradle: project (': volley'). projectDir = new File ('libraries / volley'), ponieważ umieściłem go w folderze bibliotek
Björn Kechel

Wielkie dzięki ! To powinna być oficjalna odpowiedź
Vivek Singh

Nie powinno być konieczne proszenie kontroli wersji, aby wykonać zadanie menedżera pakietów.
Rikki Gibson

26

dzisiaj

dependencies {
    compile 'com.android.volley:volley:1.0.0'
}   

Wiele różnych sposobów na zrobienie tego w ciągu dnia (oryginalna odpowiedź)

  • Użyj plików źródłowych z gita (raczej ręczny / ogólny sposób opisany tutaj)

    1. Pobierz / zainstaluj klienta git (jeśli jeszcze go nie masz w swoim systemie): http://git-scm.com/downloads (lub przez git clone https://github.com/git/git... sry zły, ale nie mogłem się oprzeć ^^)
    2. Wykonać git clone https://android.googlesource.com/platform/frameworks/volley
    3. Skopiuj comfolder z wewnątrz [path_where_you_typed_git_clone]/volley/srcdo app/src/main/javafolderu projektów (zamiast tego zintegruj go, jeśli masz już tam folder com !! ;-))

    Pliki pojawiają się natychmiast w Android Studio. Dla Eclipse trzeba będzie right-clickna srcfolder i naciśnij refresh(lub F5) po raz pierwszy.

  • Użyj gradle poprzez „nieoficjalne” lustro mavena

    1. W src/build.gradlepliku projektu dodaj następującą zależność volley:

      dependencies {
          compile fileTree(dir: 'libs', include: ['*.jar'])
          // ...
      
          compile 'com.mcxiaoke.volley:library:1.+'
      }
      
    2. Kliknij, Try Againktóry powinien od razu pojawić się na górze pliku, a Buildjeśli nie , po prostu go

    Główną "zaletą" jest to, że dzięki temu wersja będzie dla Ciebie aktualna, podczas gdy w pozostałych dwóch przypadkach będziesz musiał ręcznie zaktualizować salwę.

    Z drugiej strony, nie pochodzi on oficjalnie z Google, ale z cotygodniowego lustra strony trzeciej.

    Ale oba te punkty są naprawdę związane z tym, czego potrzebujesz / chcesz. Jeśli nie chcesz aktualizacji, po prostu umieść tam żądaną wersję, np compile 'com.mcxiaoke.volley:library:1.0.7'.


W Android Studio 1.0.2 nie musisz klikać prawym przyciskiem myszy na jar, aby go dodać. Domyślne reguły Gradle dodają go automatycznie. Ponadto, jeśli jesteś nowym użytkownikiem Studio, możesz być zaskoczony, że słoik nie pojawia się w widoku projektu. Jest to filtrowane przez ustawienie „Android” w pokrętle tuż nad widokiem. Zmień to na „Projekt”, aby zobaczyć, że faktycznie coś osiągnąłeś.
Brian Marick

Dobrze wiedzieć, dzięki! Usunięto to z odpowiedzi! Ale jak uwaga dla użytkowników wersji beta: Jeśli wybierzesz pierwszą opcję (dodając je jako biblioteki), będzie trzeba także right-clickna volley.jarw libsfolderze Android Studio i wybrać Add As Library..., aby był dostępny w projekcie.
Levite

1
@Levit, Odnośnie drugiego podpunktu - "Użyj plików źródłowych z gita (raczej ręczny / ogólny sposób opisany tutaj)" Korzystam z android studio. Dodałem biblioteki do mojego projektu i wyedytowałem settings.gradle i zależności. Działa dobrze, ale otrzymuję komunikat informujący, że wykryto niezarejestrowany root Vcs, znajduje się w git, ale nie jest zarejestrowany w ustawieniach, czy mógłbyś to wyjaśnić
Ersen Osman

@johncarter: Z drugim punktem / sposobem powinno być dobrze, po prostu umieszczając go w odpowiednim folderze, bez edytowania ustawień i zależności. Ale jest też bardziej lub (raczej) mniej obszerny przewodnik dotyczący tego sposobu na AndroidDevelopers: developer.android.com/training/volley
Levite,

2
Dzięki za świetną odpowiedź. Metoda Volley.jar zadziałała dla mnie po wyjęciu z pudełka!
vincent mathew

11

Na dzień dzisiejszy w JCenter dostępna jest oficjalna kopia programu Volley hostowana na Androida:

compile 'com.android.volley:volley:1.0.0'

Zostało to skompilowane z kodu źródłowego AOSP volley.


Dzięki za wiadomość! Powinno to być oznaczone jako poprawna odpowiedź.
David Lord

5

AKTUALIZACJA:

compile 'com.android.volley:volley:1.0.0'

STARE ODPOWIEDŹ: Potrzebujesz następnego w swoim build.gradle modułu aplikacji:

dependencies {
        compile 'com.mcxiaoke.volley:library:1.0.19'
        (Rest of your dependencies)

    }

To nie jest oficjalne repozytorium, ale cieszy się dużym zaufaniem.


1
Strzec się. Hostowana tutaj biblioteka volley jest przestarzała i nie jest oficjalnie hostowana. Zobacz mój post na dole.
shauvik,

1

Aby włączyć volley w Android Studio,

  1. wklej następujące polecenie w terminalu (
    git clone https://android.googlesource.com/platform/frameworks/volley ) i uruchom je.

    Zapoznaj się z samouczkiem programisty Androida .

    Utworzy nazwę folderu volley w katalogu src.
  2. Następnie przejdź do Android Studio i kliknij prawym przyciskiem myszy projekt.
  3. wybierz z listy Nowy -> Moduł.
  4. Następnie kliknij import istniejącego projektu z poniższej listy.
  5. zobaczysz obszar wprowadzania tekstu, mianowicie katalog źródłowy, przejrzyj pobrany folder (volley), a następnie kliknij Zakończ.
  6. w widoku projektu zobaczysz salwę folderów.
  7. przełącz się do widoku Androida i otwórz plik build: gradle (Module: app) i dołącz następujący wiersz w obszarze zależności:

    skompiluj „com.mcxiaoke.volley: library-aar: 1.0.0”

  8. Teraz zsynchronizuj swój projekt, a także skompiluj swój projekt.


0

Założyłem Volley jako oddzielny projekt. W ten sposób nie jest powiązany z żadnym projektem i istnieje niezależnie.

Mam również konfigurację serwera Nexus (repozytorium wewnętrzne), dzięki czemu mogę uzyskać dostęp do volleya jako
kompilacji „com.mycompany.volley: volley: 1.0.4” w dowolnym projekcie, którego potrzebuję.

Za każdym razem, gdy aktualizuję projekt Volley, wystarczy zmienić numer wersji w innych projektach.

Czuję się bardzo dobrze z takim podejściem.


0

Dodaj

compile 'com.mcxiaoke.volley:library:1.0.19'
        compile project('volley')

w zależnościach w pliku build.gradle aplikacji

NIE PRZESZKADZAĆ PLIKU build.gradle TWOJEJ BIBLIOTEKI. TO JEDYNIE GRADLE PLIK TWOJEJ APLIKACJI, KTÓRE MUSISZ ZMIENIĆ

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.