You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

升级Android Studio与Gradle至3.1后,主项目无法导入子模块Jar类如何解决

解决主项目无法导入子模块Jar包类的问题

这个问题我之前帮不少开发者解决过,核心是Gradle 3.x版本引入的implementationapi的依赖范围差异在搞鬼~

当你在子模块里用implementation依赖Jar包时,Gradle会做编译时隔离——子模块自己能正常用这个Jar的类,但上层的主项目在编译时完全看不到这个依赖。这也是implementation相比旧版compile的优化点,能减少编译时间,但刚好戳中了你的需求痛点。

要解决这个问题,不用在主项目重复加Jar依赖,只需要修改子模块的依赖声明:

  • 打开子模块的build.gradle文件
  • 找到你导入Jar包的那行代码,比如原来的:
    implementation files('libs/your-target-jar.jar')
    
    implementation替换成api
    api files('libs/your-target-jar.jar')
    
  • 点击Android Studio工具栏的「Sync Project with Gradle Files」按钮,重新同步项目

这样修改后,子模块的Jar依赖会被传递给主项目,你就能直接在主项目里导入Jar里的类了。

补充个小提醒:api会把依赖完全暴露给上层模块,虽然能解决你的问题,但如果子模块里的其他依赖不需要主项目访问,还是保持implementation比较好,避免不必要的依赖传递,维持编译效率。

内容的提问来源于stack exchange,提问作者Bubunyo Nyavor

火山引擎 最新活动