You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生成构建时Retrofit2+Gson出现newJsonReader方法缺失问题

解决Retrofit2+Gson构建包时方法缺失的问题

从你的描述和错误信息来看,问题出在构建打包过程中Gson类的方法丢失,但直接运行时正常,这大概率是依赖冲突、多DEX配置或打包流程的问题。下面是针对性的解决方案:

1. 移除冲突的OkHttp依赖

你的Gradle里同时引入了OkHttp 2.x和3.x版本:

implementation 'com.squareup.okhttp:okhttp:2.7.5'
implementation 'com.squareup.okhttp3:okhttp:3.8.0'

Retrofit 2.3.0是基于OkHttp 3.x开发的,旧版本的OkHttp 2.x会和Retrofit、Gson转换器产生依赖冲突。直接删除com.squareup.okhttp:okhttp:2.7.5这一行,保留OkHttp 3.x版本即可。

2. 排查并排除重复的Gson依赖

检查你的本地模块(比如zoomsdk、zoomcommonlib)是否引入了旧版本的Gson,导致构建时多个Gson版本被打包,出现方法缺失。

  • 执行命令查看完整依赖树:
    ./gradlew app:dependencies
    
  • 找到所有包含com.google.code.gson:gson的依赖项,如果有其他模块引入了旧版本(比如2.7及以下),在对应的依赖声明里排除Gson:
    implementation project(':zoomsdk') {
        exclude group: 'com.google.code.gson', module: 'gson'
    }
    
    对其他本地模块做同样的排查和排除操作,确保整个项目只使用你声明的Gson 2.8.0版本。

3. 完善MultiDex配置

虽然你开启了multiDexEnabled true,但可能缺少必要的依赖和初始化步骤:

  • 添加MultiDex依赖:
    implementation 'com.android.support:multidex:1.0.3'
    
  • 配置Application类:
    • 如果你的项目有自定义Application,让它继承MultiDexApplication:
      public class MyApplication extends MultiDexApplication {
          // ... 你的代码
      }
      
    • 或者在现有Application的attachBaseContext方法中初始化MultiDex:
      @Override
      protected void attachBaseContext(Context base) {
          super.attachBaseContext(base);
          MultiDex.install(this);
      }
      
    这一步能确保所有dex文件中的类都能被正确加载,避免方法找不到的问题。

4. 暂时关闭ABI Splits排查问题

你开启了ABI拆分,有可能在打包特定架构的APK时,依赖的类没有被正确打包到对应的dex中。可以先暂时注释掉ABI splits的配置:

// splits {
//     abi {
//         enable true
//         reset()
//         include 'x86', 'armeabi-v7a'
//         universalApk true
//     }
// }

然后重新构建包,如果问题消失,再逐步调整ABI配置,排查是否是某个架构的打包异常。

5. 清理构建缓存并重新构建

构建缓存残留的旧文件也可能导致这类问题,执行以下命令清理后重新构建:

./gradlew clean
./gradlew assembleDebug # 或者 assembleRelease

按以上步骤逐一排查,应该能解决你遇到的Gson方法缺失问题。

内容的提问来源于stack exchange,提问作者Junaid Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:49:08