Ich versuche, meinem Projekt eine Abhängigkeit von Android Asynchronous Http Client hinzuzufügen. Es gibt also zwei build.gradle-Dateien im Projekt.
Nach meinem Verständnis gibt es verschiedene Arten von Abhängigkeiten:
- Eine, die auf der Stammebene von build.gradle definiert wurde (Projekt: Meine App)
- Eine im Buildscript der build.gradle (Projekt: My-App)
- Ein anderes ist build.gradle (Module: App)
In dieser Frage geht es um Repositorys für Abhängigkeiten des BuildScript. Erklären Sie ein wenig die ersten beiden Typen.
Auch build.gradle (Projekt: My-App) sagt
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Ich denke also, dass der Abhängigkeitscode des asynchronen Android-HTTP-Clients in build.gradle (Modul: App) hinzugefügt werden sollte.
Wenn jemand zum besseren Verständnis ein klares Bild von all diesen geben könnte, wäre es großartig.
android
android-studio
build.gradle
Anil Bhaskar
quelle
quelle
build.gradle(Modules:app)
oder dorthin gehen,File -> Project Structure -> Modules -> (Choose project you want to add library) -> Dependencies
wo Sie ein grünes Kreuz sehen, indem Sie auf dieseModule Dependency
Option tippen und Ihre Bibliothek automatisch hinzufügenFailed to find: com.loopj.android:android-async-http:1.4.5
dass es nicht direkt heruntergeladen werden kann, habe ich auch den Proxy festgelegt. Ich habe die JAR-Datei heruntergeladen und manuell versucht, aber alsFile Repository
..ist es der richtige Weg.Project Structure
Zur Vereinfachung gehen Sie zuModules
und wählen Sie Ihr Projekt. Dort sehen Sie einegreen cross sign
. Wenn Sie darauf klicken, wird dasNew Module
Fenster geöffnet . Dort können Sie Ihre Bibliothek importieren. Wenn Sie eine.jar
Datei haben, wählen Sie untenimport .JAR or .AAR package
. Andernfalls kopieren Sie Ihr Glas in denlibs
Ordner undModule:app
fügen Sie auf Ihrem diese die folgenden Abhängigkeiten hinzu:dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile files('libs/your_jar_file.jar') }
Antworten:
build.gradle(Project:My-app)
Jedes Projekt enthält a
top-level gradle file
. Es enthält normalerweisecommon configs
für allemodules
. Was auch immer darin enthalten isttop-level gradle
, es wird alle betreffenmodules
.Ex:
build.gradle(Module:app)
Alle
modules
haben eine bestimmtegradle
Datei . Was auch immer in diesergradle
Datei enthalten ist, es wirkt sich nur auf das ausmodule
, was in enthalten ist.Ex:
quelle
Es ist etwas verwirrend, da Android Studio standardmäßig beide
build.gradle
Dateien direkt nebeneinander anzeigt (bei Verwendung der Android-Ansicht).Wenn Sie zur Projektansicht wechseln, sehen Sie die tatsächliche Struktur und den
build.gradle
Speicherort der verschiedenen Dateien.Die
build.gradle
Datei (Projekt: MyApplication) befindet sich im Stammordner des Projekts und ihre Konfigurationseinstellungen gelten für jedes Modul im Projekt. Ein Modul ist ein isoliertes Stück des größeren Projekts. In einem Projekt mit mehreren Modulen haben diese Module ihre eigenen Jobs, arbeiten jedoch zusammen, um das gesamte Projekt zu bilden. Die meisten Android-Projekte haben nur ein Modul, das App-Modul.Die
build.gradle
Datei (Modul: App) befindet sich hier imapp
Ordner. Die Build-Einstellungen gelten nur für das App-Modul. Wenn es ein anderes Modul gäbe, hätte dieses Modul auch eine eigenebuild.gradle
Datei. Als Beispiel habe ich ein Bibliotheksprojekt mit drei Modulen erstellt: einem Bibliotheksmodul, einem Demo-App-Modul und einem weiteren App-Modul, das ich zum Testen verwenden möchte. Jeder von ihnen hat seine eigenenbuild.gradle
Dateien, die ich optimieren kann.In einem Basisprojekt befindet sich fast alles, was Sie bearbeiten müssen, in der
build.gradle
Datei des App-Moduls . Sie können sich so daran erinnern:Weiterführende Literatur
quelle
Über die Beziehung der beiden
gradle
Dateien machte hrskrs eine sehr klare Erklärung. Ich werde eine Ergänzung dazu machen.Wenn Ihr Projekt nur ein Modul hat (z. B. eine App ), wird der Vorteil von top build.gradle (Projekt: Meine App) nicht sehr deutlich. weil Sie in build.gradle (Modul: App) alles über das Modul konfigurieren und beim Upgrade in den folgenden Tagen nur eine Datei ändern können。
Wenn Ihr Projekt jedoch 5 Module enthält und diese dieselbe Abhängigkeit A haben , müssen Sie in den folgenden Tagen 5 Dateien verwalten , wenn Sie das oberste build.gradle (Projekt: Meine App) nicht verwenden .
Das build.gradle (Modul: App) kann übrigens das build.gradle (Projekt: My-App) überschreiben .
Dieses Design kann die Wartbarkeit von APP verbessern
quelle