是否可以从Android Gradle依赖项中排除包,以便它不会在APK中结束?
如:
{{1}}
但后来不同,因为“package”不是有效的命令。
答案 0 :(得分:1)
这样,你可以从库中排除几个包, 这只是概念的一个例子
compile ('com.github.ganfra:material-spinner:1.1.1'){
exclude group: 'com.nineoldandroids', module: 'library'
exclude group: 'com.android.support', module: 'appcompat-v7'
}
答案 1 :(得分:1)
您不能排除工件的某些特定部分,因为Gradle并不了解其中的内容。 Gradle it's monolithic:你要么把神器包含在其内部,也不要包含它。
使用ProGuard可能实现您的目标。这是构建应用程序发布版本时的常见步骤,您可以指定要进行收缩的规则,这将删除不必要的代码。 Android文档包含code shrinking article,其中包含更多详细信息。
唯一可能出现的问题是,如果依赖项本身包含ProGuard配置文件,则可能无法强制缩小指定要保留的内容。但是,我刚刚调查了您询问的AAR,而且情况似乎并非如此。
答案 2 :(得分:0)
您可以在build.gradle中使用sourceSets来过滤您不想捆绑在apk或aab中的软件包或类。例如-
android {
sourceSets {
main {
java {
exclude 'com/a/b/helper/**'
exclude 'com/a/ext/util/TestUtils.java'
}
}
}
}
希望它会有所帮助:)
答案 3 :(得分:0)
更新了从依赖组中排除参考库的答案
implementation (group: 'net.sf.jasperreports', name: 'jasperreports', version: '6.1.0'){
//example : org.olap4j:olap4j:0.9.7.309-JS-3
exclude group: 'org.olap4j', module: 'olap4j'
}