参考:https://juejin.im/entry/5acf1ef56fb9a028cd457b6e
原因:按照android stadio 3.1的要求,需要把gradle版本升级为 4.4及以上,但是gradle 4.4及以上要求将依赖api的compile换成implementation。而implementation声明的依赖没办法传递到module以外,即该module 以外module没办法引用到implementation声明的api。
即:module A implementation libA,而 moduleB implementation module A,那么module B 引导 libA 中的api,不然在build的时候会报
解决办法:将compile 替换为 api即可,也就是如果有外部引用,则换成:api,剩下的换成:implementation。
dependencies {
api project(':domain')
def appDependencies = rootProject.ext.appDependencies
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation appDependencies.appcompat
implementation appDependencies.design
implementation appDependencies.cardView
implementation appDependencies.percent
implementation appDependencies.rxJava
implementation appDependencies.rxAndroid
implementation appDependencies.fresco
implementation appDependencies.umeng
implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true;
}
testImplementation 'junit:junit:4.12'
}
本文探讨了在Android Studio 3.1中升级Gradle版本至4.4及以上的必要性,以及如何正确配置依赖项以确保跨模块引用的顺利进行。文章详细解释了从compile切换到implementation和api的区别,并提供了具体的dependencies配置示例。
7万+

被折叠的 条评论
为什么被折叠?



