Android Gradle项目集成AppDynamics遇okhttp3.Interceptor重复类构建失败
解决AppDynamics与OkHttp重复类构建错误
错误原因
com.appdynamics:appdynamics-injector-24.4.0(作为appdynamics-gradle-plugin的依赖)内置了OkHttp相关类,与项目中单独引入的okhttp-4.12.0产生类重复冲突。
解决方案
1. 修正Gradle插件的依赖方式(推荐)
Gradle插件不应通过implementation添加到模块依赖中,需在项目根目录的build.gradle.kts(或build.gradle)的buildscript块中用classpath声明:
根目录build.gradle.kts:
buildscript { repositories { mavenCentral() } dependencies { val appDynamicsVersion = "24.4.0" classpath("com.appdynamics:appdynamics-gradle-plugin:$appDynamicsVersion") } }
模块目录build.gradle.kts中仅保留运行时依赖:
// Appdynamics val appDynamicsVersion = "24.4.0" implementation("com.appdynamics:appdynamics-runtime:$appDynamicsVersion") // OKHTTP val okHttpVersion = "4.12.0" implementation("com.squareup.okhttp3:okhttp:$okHttpVersion") implementation("com.squareup.okhttp3:logging-interceptor:$okHttpVersion")
2. 排除插件依赖中的OkHttp(若需保留implementation方式)
如果因特殊需求必须将appdynamics-gradle-plugin作为模块依赖,可通过依赖排除移除其内置的OkHttp:
// Appdynamics val appDynamicsVersion = "24.4.0" implementation("com.appdynamics:appdynamics-gradle-plugin:$appDynamicsVersion") { exclude(group = "com.squareup.okhttp3", module = "okhttp") } implementation("com.appdynamics:appdynamics-runtime:$appDynamicsVersion") // OKHTTP val okHttpVersion = "4.12.0" implementation("com.squareup.okhttp3:okhttp:$okHttpVersion") implementation("com.squareup.okhttp3:logging-interceptor:$okHttpVersion")
3. 验证依赖树
执行以下命令查看模块依赖树,确认重复依赖已被移除:
./gradlew <你的模块名>:dependencies
(将<你的模块名>替换为实际模块名称,比如app)
内容的提问来源于stack exchange,提问作者Mario Bouchedid
相关产品推荐
相关产品推荐

