Próbuję dodać zależność klienta HTTP asynchronicznego systemu Android do mojego projektu. W projekcie są więc dwa pliki build.gradle.
Jak rozumiem, istnieją różne rodzaje zależności:
- Ten, który zdefiniowano na poziomie głównym build.gradle (Projekt: My-app)
- Jeden w skrypcie build.gradle (Projekt: Moja-aplikacja)
- Kolejnym jest build.gradle (moduły: aplikacja)
To pytanie dotyczy repozytoriów dla zależności buildScript, wyjaśnij trochę o pierwszych dwóch typach.
Mówi również build.gradle (Project: My-app)
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Więc myślę, że kod zależności asynchronicznego klienta HTTP dla Androida powinien zostać dodany w build.gradle (moduł: aplikacja).
Byłoby wspaniale, gdyby ktoś mógł przedstawić jasny obraz tego wszystkiego dla lepszego zrozumienia.
android
android-studio
build.gradle
Anil Bhaskar
źródło
źródło
build.gradle(Modules:app)
lub przejść doFile -> Project Structure -> Modules -> (Choose project you want to add library) -> Dependencies
miejsca, w którym zobaczysz zielony znak krzyżyka, dotykając tej opcjiModule Dependency
i automatycznie dodaj bibliotekęFailed to find: com.loopj.android:android-async-http:1.4.5
że nie można pobrać bezpośrednio, ustawiłem również proxy. Ściągnąłem plik jar i próbowałem ręcznie, aleFile Repository
.. czy to jest właściwy sposób.Project Structure
przejdź doModules
i wybierz swój projekt. Tam zobaczysz plikgreen cross sign
. Kliknięcie spowoduje otwarcieNew Module
okna. Tam wybierasz import swojej biblioteki. Jeśli masz.jar
plik, wybierz poniżejimport .JAR or .AAR package
. W przeciwnym razie skopiujlibs
plik jar do folderu iModule:app
dodaj następujące zależności:dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile files('libs/your_jar_file.jar') }
Odpowiedzi:
build.gradle(Project:My-app)
Każdy projekt zawiera plik
top-level gradle file
. Zwykle zawieracommon configs
dla wszystkichmodules
. Cokolwiek jest w tym zawartetop-level gradle
, wpłynie na wszystkichmodules
.dawny:
build.gradle(Module:app)
Wszystkie
modules
mają określonygradle
plik . Cokolwiek jest zawarte w tymgradle
pliku, wpłynie to tylko na to,module
co jest zawarte w.dawny:
źródło
To trochę zagmatwane, ponieważ Android Studio domyślnie pokazuje oba
build.gradle
pliki obok siebie (podczas korzystania z widoku Androida).Jeśli przejdziesz do widoku projektu, możesz zobaczyć rzeczywistą strukturę i lokalizację różnych
build.gradle
plików.Plik
build.gradle
(Project: MyApplication) znajduje się w folderze głównym projektu, a jego ustawienia konfiguracyjne mają zastosowanie do każdego modułu w projekcie. Moduł jest wyodrębnioną częścią większego projektu. W projekcie wielomodułowym moduły te mają swoje własne zadania, ale współpracują, tworząc cały projekt. Większość projektów systemu Android ma tylko jeden moduł, moduł aplikacji.Plik
build.gradle
(Module: app) znajduje się wapp
folderze. Jego ustawienia kompilacji dotyczą tylko modułu aplikacji. Gdyby istniał inny moduł, wówczas ten moduł również miałby swój własnybuild.gradle
plik. Jako przykład wykonałem projekt biblioteki z trzema modułami: modułem biblioteki, modułem aplikacji demonstracyjnej i innym modułem aplikacji, którego planuję użyć do testowania. Każdy z nich ma własnebuild.gradle
pliki, które mogę modyfikować.W podstawowym projekcie prawie wszystko, co musisz edytować, będzie znajdować się w
build.gradle
pliku modułu aplikacji . Możesz to zapamiętać w ten sposób:Dalsza lektura
źródło
Jeśli chodzi o relację obu
gradle
plików, hrskrs bardzo jasno wyjaśnił: ,Dodam do tego jakieś uzupełnienie.jeśli twój projekt ma tylko jeden moduł (np. app ), zalety top build.gradle (Project: My-app) nie są bardzo jasne. ponieważ możesz skonfigurować wszystko w build.gradle (Module: app) o Module i modyfikować tylko jeden plik podczas aktualizacji w kolejnych dniach。
ale jeśli twój projekt ma 5 modułów i zdarzyło się, że mają one tę samą zależność A , jeśli nie używasz top build.gradle (Project: My-app) , musisz utrzymywać 5 plików w kolejnych dniach.
Nawiasem mówiąc, build.gradle (moduł: aplikacja) może nadpisać build.gradle (projekt: moja-aplikacja) .
Ten projekt może poprawić łatwość konserwacji APP
źródło