启用Jetifier后Crashlytics构建失败,如何单独禁用JetifyTransform?
解决Jetifier与Crashlytics依赖冲突:单独禁用指定依赖的JetifyTransform
当然可以单独给特定依赖关闭JetifyTransform啦!针对你碰到的Crashlytics和Jetifier冲突的问题,我给你整理了两种靠谱的解决办法,结合你的项目配置,具体操作如下:
方法1:通过gradle.properties配置Jetifier黑名单
在你的gradle.properties文件里,新增android.jetifier.blacklist属性,直接指定不需要Jetify转换的依赖文件名就行:
android.enableJetifier=true android.useAndroidX=true # 添加这行,跳过Crashlytics相关aar的Jetify转换 android.jetifier.blacklist=crashlytics-2.9.2.aar,crashlytics-core-2.6.2.aar,beta-1.2.7.aar
这种方式是全局告诉Jetifier别处理这些指定的aar文件,适合批量跳过多个关联依赖的场景,操作起来很省心。
方法2:在依赖声明中单独禁用Jetify
如果你更想在模块级配置里精准控制每个依赖,可以在app/build.gradle的依赖声明部分,给每个Crashlytics相关依赖加上noJetify()规则:
implementation('com.crashlytics.sdk.android:crashlytics:2.9.2') { noJetify() } // 要是需要单独处理传递过来的依赖,也可以逐个声明: implementation('com.crashlytics.sdk.android:crashlytics-core:2.6.2') { noJetify() } implementation('com.crashlytics.sdk.android:beta:1.2.7') { noJetify() }
这种方式灵活性更高,能精准针对单个依赖关闭Jetify转换。
额外建议:升级依赖与插件版本
你的项目用的Android Gradle Plugin(3.2.0-alpha14)和Crashlytics版本(2.9.2)都比较旧了,这些老版本对AndroidX和Jetifier的支持可能不够完善。我建议你:
- 把Android Gradle Plugin升级到稳定版本,比如
com.android.tools.build:gradle:3.2.1或者更高; - 把Crashlytics依赖升级到兼容AndroidX的版本,比如
com.crashlytics.sdk.android:crashlytics:2.10.1(这个版本及以后已经全面支持AndroidX了); - 同时把Fabric Gradle插件升级到
io.fabric.tools:gradle:1.31.2或者更高,确保和新版本的依赖兼容。
修改完配置后,记得先执行Clean Project再Rebuild Project,让新配置生效哦!
内容的提问来源于stack exchange,提问作者Reza Bigdeli
相关产品推荐
相关产品推荐

