AS 3.0+主app moudle引用其他module无法导

2019-08-23  本文已影响0人  岁月静好浅笑安然

主app module的build.gradle 示例

项目结构实例

微信截图_20190823185233.png

AS 3.0 以下,主module和其他被引用的module都使用complie关键字依赖如

dependencies {
    complie fileTree(include: ['*.jar'], dir: 'libs')
    androidTestComplie('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testComplie'junit:junit:4.12'
    complie 'com.android.support:appcompat-v7:25.3.0'
    complie project(':IMKit')
    complie project(':IMLib')
    complie project(':govSDK_lib')
}

被引用IMKit module的build.gradle 示例

dependencies {
    complie fileTree(dir: 'src/main/libs', include: ['*.jar'])
    complie 'com.android.support:support-v4:23.0.1'
    complie project (':IMLib')
}

此时假如我们,as升级3.0+以后,一般按照如下思路更改

 dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
    }
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testComplie'junit:junit:4.12'
    implementation 'com.android.support:appcompat-v7:25.3.0'
    implementation project(':IMKit')
    implementation project(':IMLib')
    implementation project(':govSDK_lib')

如果你项目没有引用,其他的module恭喜你,修改结束!但是有引用你应该会发现,完全无法导包。此时你需要将被引用的moudle中implementation改为api

代码示例

dependencies {
    api fileTree(dir: 'src/main/libs', include: ['*.jar'])
    api 'com.android.support:support-v4:23.0.1'
    api project (':IMLib')
}

这样一般说来,就没什么问题了。假如还有问题的话一般做法,去除所有引用,再重新引用一遍。或许还有依赖冲突的问题请参考我的另外一篇博文。

上一篇 下一篇

猜你喜欢

热点阅读