Android Studio(Kotlin)集成Moshi库编译失败求助
解决Moshi集成后编译失败:找不到javax.annotation相关类的问题
从你提供的报错信息和项目配置来看,问题核心是Moshi与Okio依赖的javax.annotation包下注解类在Android环境中缺失,再加上Debug模式开启了代码压缩(minifyEnabled),进一步触发了编译报错。下面是具体的解决步骤:
1. 手动引入javax.annotation依赖
Android SDK默认不包含javax.annotation相关类库,但Moshi内部大量使用了该包下的注解(比如@Nullable、@ParametersAreNonnullByDefault),所以需要在app模块的build.gradle的dependencies块中添加依赖:
implementation 'javax.annotation:javax.annotation-api:1.3.2'
2. 调整Debug模式的代码压缩配置
你的Debug构建类型中开启了minifyEnabled true,但Debug模式通常不需要代码压缩——这不仅会拖慢编译速度,还容易引发类引用类问题。建议直接关闭Debug模式的代码压缩:
修改app模块build.gradle中的buildTypes部分:
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { debuggable true minifyEnabled false // 此处改为false } }
如果确实需要在Debug模式下保留代码压缩,需在proguard-rules.pro中补充规则,确保javax.annotation的类被保留:
# 保留javax.annotation相关类和注解 -keep class javax.annotation.** { *; }
3. (可选)升级Moshi到稳定版本
你当前使用的Moshi 1.5.0是较旧的版本,存在一些已知兼容性问题,建议升级到较新的稳定版本(比如1.14.0),同时保持moshi和moshi-kotlin版本一致:
implementation 'com.squareup.moshi:moshi:1.14.0' implementation 'com.squareup.moshi:moshi-kotlin:1.14.0'
完成以上步骤后,同步Gradle并重新编译项目,应该就能解决这个编译报错了。
内容的提问来源于stack exchange,提问作者levWi
相关产品推荐
相关产品推荐

