RN项目加原生Android代码后Release构建遇Glide类重复Dex合并错误
React Native Android Release构建mergeDex错误(Glide重复类)解决办法
问题核心
报错显示com.bumptech.glide.GeneratedRequestManagerFactory类被重复定义,分别来自项目编译产物和第三方依赖的dex文件。Debug模式正常是因为Debug构建对重复类的检查更宽松,而Release模式的代码合并逻辑会严格校验,导致冲突暴露。
具体解决步骤
1. 定位重复依赖来源
执行gradle命令查看完整依赖树,找出哪个第三方库(比如React Native的图片相关库)自带了Glide的相关类:
./gradlew app:dependencies
搜索com.github.bumptech.glide,确认除了你手动引入的之外,是否有其他依赖间接引入了相同或不同版本的Glide。
2. 排除冲突的依赖
如果发现某个库自带了Glide,在app/build.gradle中排除该库的Glide依赖,示例:
// 假设react-native-fast-image引入了重复Glide implementation(project(':react-native-fast-image')) { exclude group: 'com.github.bumptech.glide' }
3. 优化Glide注解处理器配置
你自定义了AppGlideModule,确保注解处理器只生成一份辅助类:
android { defaultConfig { multiDexEnabled true // 确认multidex已开启 } buildTypes { release { javaCompileOptions { annotationProcessorOptions { arguments = [ "android.enableSeparateAnnotationProcessing": "true" ] } } } } }
同时检查项目中是否存在多个@GlideModule注解的类,确保只有你写的GlideAppModule这一个。
4. 清理构建缓存
缓存残留可能导致重复类问题,执行以下命令清理后重新构建:
./gradlew clean rm -rf android/app/build rm -rf ~/.gradle/caches
5. 升级Glide版本
你当前使用的Glide 4.10.0版本较旧,升级到最新稳定版(如4.16.0)可以修复部分已知的依赖冲突问题:
implementation 'com.github.bumptech.glide:glide:4.16.0' kapt 'com.github.bumptech.glide:compiler:4.16.0'
内容的提问来源于stack exchange,提问作者skyshine
相关产品推荐
相关产品推荐

