我有一个可安装的应用和即时应用版本。 为了减少即时应用版本的APK大小,我减少了一些功能。这也意味着在运行时不再使用某些库。在编译期间仍然需要它们。 在gradle中有一个很好的依赖语句叫做“compileOnly”。 工作得很好。我的应用程序大小完全按照我希望的那样减少。 但每当我想编译即时应用程序或可安装时,我必须手动更改所有gradle文件并将“Api”替换为“CompileOnly”,反之亦然。
有没有办法在gradle文件中设置条件。所以我有类似的东西:
//normal dependencies here.
if isInstantApp{
compileOnly "org.twitter4j:twitter4j-core:$rootProject.ASNETwitter"
}
else if (isInstallable){
compile "org.twitter4j:twitter4j-core:$rootProject.ASNETwitter"
}
这将节省我的大部分时间。
PS。我不是在寻找构建口味,因为这不是这里的用例。
答案 0 :(得分:1)
您只需创建一个新配置,让api
或compileOnly
从中扩展:
configurations {
shared
(isInstallable ? api : compileOnly).extendsFrom shared
}
dependencies {
shared 'my:dependency:1'
// ....
}