Android Kotlin引入网络模块依赖后创建OkHttp Request崩溃
问题原因及解决方案
核心原因
你的网络Module依赖了OkHttp库,但在Module的构建配置里,OkHttp的依赖被设置为implementation,这种依赖不会传递到引入该Module的宿主项目中,导致宿主项目运行时找不到OkHttp的Request$Builder类,触发NoClassDefFoundError。
解决步骤
- 打开你的网络Module中的
build.gradle(或build.gradle.kts)文件,找到OkHttp的依赖配置行。 - 如果原来的配置是
implementation("com.squareup.okhttp3:okhttp:x.x.x"),把implementation改成api,也就是api("com.squareup.okhttp3:okhttp:x.x.x")。api会让依赖传递给上层的宿主项目。 - 回到Android Studio,点击顶部工具栏的「Sync Project with Gradle Files」按钮,同步配置。
- 执行「Build -> Clean Project」,再执行「Build -> Rebuild Project」,清理并重新构建项目。
- 重新运行宿主项目,检查崩溃是否消失。
额外检查点
如果上述步骤没解决问题,检查宿主项目的build.gradle文件,确认没有通过exclude规则排除OkHttp的依赖,比如有没有类似exclude group: "com.squareup.okhttp3"的代码,若有则删除。
内容的提问来源于stack exchange,提问作者Manoj
相关产品推荐
相关产品推荐

