A.A*_*omi 5 android gradle android-gradle-plugin
当我尝试将 Gson 添加到我现有的 Android gradle 项目时遇到了一个问题。
例外是这样的
“无法解析:com.google.code.gson:gson:2.3.1”
我的 build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
apply plugin: 'android'
dependencies {
compile 'com.google.code.gson:gson:2.3.1'
.
.
Run Code Online (Sandbox Code Playgroud)
经过一些搜索和反复试验,我发现您需要添加以下内容来解决问题:
allprojects {
repositories {
jcenter()
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我们需要两次引用 jcenter,为什么“allprojects”对解决这个问题很重要?
经过一些搜索和跟踪和错误,我发现您需要添加以下内容来解决问题
仅当您有一个传统的 Android Studio 项目时,您将应用程序划分为多个模块(例如,app/)。真正需要的是模块知道从哪里提取依赖项。
为什么我们需要两次引用jcenter
在repositories你的封buildscript封说:“这些都是从拉摇篮插件和其他人工制品仓库dependencies为上市buildscript关闭本身”。
在repositories你已经在封allprojects封说:“这些都是从拉你自己的应用程序中的工件储存器dependencies”。
在传统的 Android Studio 项目中,allprojects闭包build.gradle位于项目根目录中的文件中。allprojects说“这个闭包中的所有内容,请应用到这个项目中所有模块的 Gradle 配置,比如app/那边的那个模块”。
现在,您build.gradle问题中的代码段暗示您可能没有传统的 Android Studio 项目,而是有一个没有app/模块且只有一个build.gradle文件的项目。在这种情况下,allprojects它本身不是必需的(因为没有模块),但您仍然需要指定它们是什么repositories。
例如,这是一个build.gradle来自无模块项目的文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
apply plugin: 'com.android.application'
repositories {
mavenCentral()
maven {
url "https://repo.commonsware.com.s3.amazonaws.com"
}
}
dependencies {
compile 'de.greenrobot:eventbus:2.4.0'
compile 'com.android.support:support-v13:21.0.3'
compile 'com.commonsware.cwac:wakeful:1.0.+'
}
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
defaultConfig {
targetSdkVersion 17
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,除了repositories里面的闭包buildscript(定义插件来自哪里)之外,我还有一个顶级repositories闭包,来定义顶级dependencies来自哪里。
| 归档时间: |
|
| 查看次数: |
1943 次 |
| 最近记录: |