本文记录一个依赖文件找不到的问题,并多加几个关键词,希望遇到的人能快速解决
最近两天弄项目模块化,使用repo
管理项目。拆分项目后的结构大概如下:
sample
- app
- library1
- library2
其中library1
又依赖了其他第三方库。build.gradle
示例如下:
implementation 'com.squareup.okhttp3:okhttp:3.8.1'
问题来了。在app
中我想用okhttp
,最后发现代码中竟然找不到okhttp
。
搜了一圈,发现问题出在library1
的build.gradle
implementation
上。因为以前都是cmopile
,现在Android Studio会提示用implementation
替代compile
,就自然而然的改了。
其实,compile
换成了implementation
和api
两个。区别如下:
implementation
:只对当前module提供接口,不对外公开。依赖不会传递到app
。
api
:用该方式依赖的库会参与编译和打包,会增加编译时间。依赖会传递到app
。
所以,解决方案是:library1
中的依赖用api 'com.squareup.okhttp3:okhttp:3.8.1'
就好了。
更多compile
、api
、implementation
的区别请自行搜索。
=== END ===
以下是搜索关键词,方便用户搜索。
android依赖找不到、repo、submodule、模块、gradle依赖、build.gradle依赖、依赖传递、传递依赖、aar找不到、第三方依赖无效