我目前正在尝试将项目切换为使用gradle构建。在使用旧的构建系统时,我通过编译源代码链接到私有/内部/隐藏的android API,并在Android库之前链接classes.jar文件。我目前正试图在gradle做同样的事情,没有运气。
使用我当前的build.gradle文件,我收到以下错误:
Gradle: A problem occurred evaluating project ':Launcher2'.
> Could not find method external() for arguments [file collection] on project ':Launcher2'.
如果我在“apply plugin:android”
之前删除这些行dependencies {
compile files('libraries/classes.jar')
}
我收到有关缺少com.android.internal和com.android.common软件包的错误,这些软件包位于我的classes.jar文件中。
这是我的build.gradle文件。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.6'
}
}
dependencies {
compile files('libraries/classes.jar')
}
plugin: 'android'
android {
buildToolsVersion "17.0"
compileSdkVersion 10
dependencies {
compile fileTree(dir: 'libraries', include: '*.jar')
compile project(':ActiveAndroid')
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
编辑:在阅读了gradle文档后,我能够成功地将库链接到项目中,但依赖项的顺序是错误的。相当于我想要做的是将两个.jar文件添加到类路径的顶部,以便在android SDK jar文件之前声明它们。
我正在挖掘android gradle插件的源代码,似乎这可能是不可能的。代码似乎不完整,不会构建。如果有人有任何见解我会非常感激。否则看起来我现在必须切换回使用Ant。