Android Asynchronous Http Clientの依存関係をプロジェクトに追加しようとしています。そのため、プロジェクトには2つのbuild.gradleファイルがあります。
私の理解では、異なる種類の依存関係があります。
この質問 はbuildScriptの依存関係のリポジトリに関するもので、最初の2つのタイプについて少し説明します。
Build.gradle(Project:My-app)も言っています
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
したがって、Android Asynchronous Http Clientの依存関係コードをbuild.gradle(Module:app)に追加する必要があると思います。
理解を深めるために、誰かがこれらのすべての明確な画像を提供できれば、それは素晴らしいことです。
build.gradle(Project:My-app)
すべてのサブプロジェクト/モジュールに共通の構成オプションを追加できる最上位ビルドファイル。
各プロジェクトにはtop-level gradle file
が含まれます。通常、すべてのmodules
に対してcommon configs
が含まれます。このtop-level gradle
に含まれるものは何でも、すべてのmodules
に影響します。
例:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:2.0.0-alpha3'
//Maven plugin
classpath 'com.github.dcendents:Android-maven-gradle-plugin:1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build.gradle(Module:app)
特定のモジュールのビルドファイル(依存関係、署名設定、ビルドタイプ、フレーバーなどを追加する場所)
すべてのmodules
には特定のgradle
fileがあります。このgradle
ファイルに含まれるものは何でも、含まれるmodule
にのみ影響します。
例:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.hrskrs.gesturefun"
minSdkVersion 10
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
zipAlignEnabled true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
zipAlignEnabled true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':gesture-fun')
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:design:23.1.1'
compile 'com.jakewharton:butterknife:7.0.1'
}
Android Studioでは、デフォルトで両方のbuild.gradle
ファイルが隣り合って表示されるため(Androidビューを使用する場合)、少し混乱します。
プロジェクトビューに切り替えると、実際の構造とさまざまなbuild.gradle
ファイルの場所を確認できます。
build.gradle
(プロジェクト:MyApplication)ファイルはプロジェクトのルートフォルダーにあり、その構成設定はプロジェクト内のすべてのモジュールに適用されます。モジュールは、より大きなプロジェクトの孤立した部分です。マルチモジュールプロジェクトでは、これらのモジュールには独自のジョブがありますが、連携してプロジェクト全体を形成します。ほとんどのAndroidプロジェクトには、アプリモジュールという1つのモジュールしかありません。
ここのbuild.gradle
(モジュール:アプリ)ファイルはapp
フォルダーにあります。そのビルド設定はアプリモジュールにのみ適用されます。別のモジュールがある場合、そのモジュールにも独自のbuild.gradle
ファイルがあります。 例 として、3つのモジュールでライブラリプロジェクトを作成しました。ライブラリモジュール、デモアプリモジュール、およびテストに使用する予定の別のアプリモジュールです。それぞれに独自のbuild.gradle
ファイルがあり、これを調整できます。
基本的なプロジェクトでは、編集する必要があるほぼすべてのものがアプリモジュールのbuild.gradle
ファイルに含まれます。次のように思い出すことができます。
appを作成しているので、
build.gradle
(Module:app)ファイル。
2つのgradle
ファイルの関係について、hrskrsは非常に明確な説明を行いました。それについて補足します。
プロジェクトにモジュールが1つしかない場合(appなど)、top build.gradle(Project:My-app)の利点はあまり明確ではありません。モジュールについてbuild.gradle(Module:app)ですべてを設定し、次の日にアップグレードするときに1つのファイルのみを変更できるためです。
ただし、プロジェクトに5つのモジュールがあり、同じ依存関係がある場合A、トップを使用しない場合build.gradle(Project:My-app) =次の日に5つのファイルを維持する必要があります。
ちなみに、build.gradle(Module:app)はbuild.gradle(Project:My-app)を上書きできます。
この設計により、APPの保守性が向上します。