使用';提供';android gradle的子项目
我有一个带有子项目的项目,它应该只在编译时类路径中使用';提供';android gradle的子项目,android,android-gradle-plugin,Android,Android Gradle Plugin,我有一个带有子项目的项目,它应该只在编译时类路径中 root-project |- classic-subproject `- compile-time-subproject 根项目使用 [...] apply plugin: 'com.android.application' dependencies { [...] compile project(':classic-subproject') provided project(':compile-time-subpr
root-project
|- classic-subproject
`- compile-time-subproject
根项目使用
[...]
apply plugin: 'com.android.application'
dependencies {
[...]
compile project(':classic-subproject')
provided project(':compile-time-subproject')
}
android {
[...]
}
两个子项目都使用
[...]
apply plugin: 'com.android.library'
android {
[...]
}
我使用Gradle2.1和android gradle 0.14.4
根据我的理解,给定的配置应该在编译时将编译时子项目放在类路径中,而不应该放在生成的apk中。但是我注意到它在运行时也是可用的(=在apk中)
这是安卓gradle中的一个bug还是我的配置有什么问题?显然,安卓库不可能像提供的那样使用。但是,可以按照提供的方式提供java库 只要在编译插件时只希望Android标准库位于类路径中,而不需要资源或AndroidManifest.xml处理,就可以使用以下方法将库转换为java项目
apply plugin: 'java'
def sdkVer = 23
def sdkDir = System.env.ANDROID_HOME
if (!sdkDir) {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
sdkDir = properties.getProperty('sdk.dir')
}
sourceSets.main.compileClasspath += project.rootProject.files("$sdkDir/platforms/android-$sdkVer/android.jar")