4

我目前正在尝试将我的项目切换为使用 gradle 构建。在使用旧的构建系统时,我通过编译源代码并在 Android 库之前链接 classes.jar 文件来链接到私有/内部/隐藏的 android API。我目前正在尝试在 gradle 中做同样的事情,但一点运气都没有。

使用我当前的 build.gradle 文件,我收到以下错误:

Gradle: A problem occurred evaluating project ':Launcher2'.
> Could not find method external() for arguments [file collection] on project ':Launcher2'.

如果我在“应用插件:android”之前删除这些行

dependencies {
compile files('libraries/classes.jar')
}

我收到有关缺少位于我的 classes.jar 文件中的 com.android.internal 和 com.android.common 包的错误。

这是我的 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。

4

0 回答 0