Gradle8.0+ 打包的aar不会被低版本的Gradle项目引入

今日,我的一个老项目引用Gradle8.0+ 打包的aar遇到了问题,明明下载成功了,但是项目就是import不进去该aar。
我打开了gradle缓存目录。

/Users/mac/.gradle/caches/modules-2/files-2.1

我看到了我的aar就在里面。
同时,我的另外一个项目,引用该aar却没有问题,这让我陷入了沉思。

这俩项目只有三点不同。
第一,老项目用的是jdk11,新项目用的是jdk17。
第二,老项目用的是gradle3.x.x,新项目用的是8.0。
第三,老项目的编辑器是android studio2021,新项目是2023。

同时如果你在老项目中调用

./gradlew build --refresh-dependencies

则会显示:

Failed to transform 'xxx.aar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)

根据此提示,我找到了,https://stackoverflow.com/questions/50270599/failed-to-transform-error-after-migrating-to-androidx
并根据提示我在gradle.properties

android.enableJetifier=false

确实好用了,但是这对我们生产项目会造成隐藏的风险,因为我不知道有没有三方库需要转移到支持androidx。
所以,无奈只能尝试升级gradle版本。
我把gradle升级到7.4.x后,确实也解决了问题,但是同时也删除了一些冗余代码。
总之而言,谷歌现在是比较支持用户使用新版的gradle,所以最后还是选择了升级,也为了以后少遇见此类事件。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容