主app module的build.gradle 示例
项目结构实例
微信截图_20190823185233.pngAS 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+以后,一般按照如下思路更改
- 1.修改
build.gradle/project
,改高版本
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
}
- 修改
gradl/wrapper/gradle-wrapper.properties
- 修改
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
- 3.修改对应
build.gradle
,将complie
改为implementation
,修改示例(引用的module示例省略)
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')
}
这样一般说来,就没什么问题了。假如还有问题的话一般做法,去除所有引用,再重新引用一遍。或许还有依赖冲突的问题请参考我的另外一篇博文。
网友评论