在Android Studio中,请参阅其他模块中的.apk类

时间:2014-03-02 05:53:58

标签: android gradle android-studio android-gradle

这个问题源于我不是Gradle专家,而且我来自Eclipse + Maven背景。

在Maven中,我能够从另一个项目(例如Robolectric子项目)引用我的apk项目,因为android-maven-plugin正在推动.apk和(un-dexed){ {1}}在我的本地存储库中。

如何在Android Studio + Gradle中实现相同功能?

  • 我尝试将.jar添加到我的应用项目中,但java插件与Android插件不兼容。
  • 我尝试使用带有apply plugin: 'java'的java插件构建我的应用程序的子模块,但是R.java不是以这种方式生成的:

    build.gradle

还有其他办法吗?

EDIT4:发布解决方案。

1 个答案:

答案 0 :(得分:0)

我编辑的解决方案实际上效果很好。我在这里报告它作为解决方案。 注意,它硬编码类文件的路径,我无法找到如何在其中使用$ buildType(有办法吗?)

def variantName = "debug" // init to debug

apply plugin: 'android'

android {
    ...
    applicationVariants.all { variant ->
        variantName = variant.name
        buildDebugJar.dependsOn variant.packageApplication
    }
}

// Builds the jar containing compiled .java files only (no resources).
task buildJar(type: Jar) {
    description 'Generates the jar file along with the apk.'
    from new File("$project.buildDir/classes/$variantName")
}

configurations {
    jarOfApk
    transitive = false
}

artifacts {
    jarOfApk buildJar
}

引用模块将以这种方式声明一个新的依赖:

compile project(path: ':app', configuration: 'jarOfApk')