首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

启用R8 minify后,单个Int字段出现Moshi/retrofit错误

启用R8 minify后,单个Int字段出现Moshi/retrofit错误是由于R8 minify对代码进行了混淆和优化,可能导致Moshi或retrofit无法正确解析Int字段。这个问题通常是由于混淆导致的,混淆会将代码中的类、方法、字段等重命名,从而破坏了Moshi或retrofit对应用程序的解析逻辑。

要解决这个问题,可以通过在混淆规则文件(proguard-rules.pro)中添加相应的规则来保护Moshi和retrofit所需的类和字段。具体来说,可以添加以下规则:

-keep class com.squareup.moshi.** { ; } -keep class retrofit.* { *; }

这些规则将阻止混淆器对Moshi和retrofit相关的类进行重命名,从而确保它们能够正确解析Int字段。

另外,还可以考虑使用R8的keepattributes选项来保留特定的注解或类成员。例如,可以使用以下规则来保留Int字段的名称:

-keepclassmembers class com.example.YourClass { int yourIntField; }

这将防止混淆器对YourClass中的yourIntField进行重命名。

在使用腾讯云进行云计算时,可以考虑使用腾讯云的移动后端云(Mobile Backend Cloud,MBC)服务。MBC提供了一套完整的移动后端解决方案,包括数据存储、用户认证、消息推送等功能,可以帮助开发者快速构建稳定可靠的移动应用后端。具体可以参考腾讯云MBC的产品介绍页面:腾讯云MBC产品介绍

此外,腾讯云还提供了丰富的云计算产品和服务,如云服务器(CVM)、云数据库(CDB)、云存储(COS)等,可以根据具体需求选择适合的产品。更多腾讯云产品信息可以参考腾讯云官方网站:腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android MVI框架搭建与使用

implementation 'com.squareup.retrofit2:retrofit:2.9.0' //retrofit moshi implementation "...: String, @Json(name = "res") val res: Res )   这里每一个字段上都有一个@Json注解,这里是MoShi依赖库的注解,主要检查一下导包的问题...Retrofit一开始是支持Gson转换的,后面增加了MoShi的转换,Moshi拥有出色的Kotlin支持以及编译时代码生成功能,可以使应用程序更快更小。...import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory import retrofit2.Retrofit import retrofit2...作为网络接口请求的地址头,然后构建了MoShi,通过MoShi去进行JSON转Kotlin数据类的处理,之后就是构建Retrofit,将MoShi设置进去,最后就是通过Retrofit创建一个网络请求服务

3.3K40
  • 扔掉okhttp、httpClient,来试试这款轻量级HTTP客户端神器?

    错误解码器 在HTTP发生请求错误(包括发生异常或者响应数据不符合预期)的时候,错误解码器可将HTTP相关信息解码到自定义异常中。...你可以在@RetrofitClient注解的errorDecoder()指定当前接口的错误解码器,自定义错误解码器需要实现ErrorDecoder接口: /** * 错误解码器。...retrofit-spring-boot-starter扩展2种CallAdapterFactory实现: BodyCallAdapterFactory 默认启用,可通过配置retrofit.enable-body-call-adapter...ResponseCallAdapterFactory 默认启用,可通过配置retrofit.enable-response-call-adapter=false关闭 同步执行http请求,将响应体内容适配成...:converter-gson Jackson: com.squareup.Retrofit:converter-jackson Moshi: com.squareup.Retrofit:converter-moshi

    1.7K20

    扔掉okhttp、httpClient,来试试这款轻量级 HTTP 客户端框架,吹爆!

    lianjiatech/retrofit-spring-boot-starter 功能特性 自定义OkHttpClient 注解式拦截器 日志打印 请求重试 熔断降级 错误解码器 微服务之间的HTTP调用...全局日志打印 默认情况下,全局日志打印是开启的,默认配置如下: retrofit: # 全局日志打印配置 global-log: # 启用日志打印 enable: true...全局重试 全局重试默认关闭,默认配置项如下: retrofit: # 全局重试配置 global-retry: # 是否启用全局重试 enable: false #...在HTTP发生请求错误(包括发生异常或者响应数据不符合预期)的时候,错误解码器可将HTTP相关信息解码到自定义异常中。...:converter-jackson Moshi: com.squareup.Retrofit:converter-moshi Protobuf: com.squareup.Retrofit:converter-protobuf

    71510

    【转-干货】Retrofit2.0使用总结及注意事项

    更多关于REST的介绍:什么是REST - GitHub讲解的非常详细 2.0与1.9使用比较 如果之前使用过Retrofit1,会发现2.0的API会有一些变化, 比如创建方式,拦截器,错误处理,转换器等...Retrofit1体验不好的地方: Retrofit1不能同时操作response返回数据(比如说返回的 Header 部分或者 URL)和序列化的数据(JAVABEAN)。...参考:用 Retrofit 2 简化 HTTP 请求 2.0使用介绍 注意:retrofit2.0:BaseUrl要以/结尾;@GET 等请求不要以/开头;@Url: 可以定义完整url,不要以 /...错误处理 在请求网络的时候,我们不止会得到HttpException,还有我们和服务器约定的errorCode和errorMessage,为了统一处理,我们可以预处理以下上面两个字段,定义BaseModel...无网读缓存,有网根据过期时间重新请求 用 Retrofit 2 简化 HTTP 请求 Retrofit请求参数注解字段说明 Android文件存储使用参考 - liaohuqiu Retrofit+RxJava

    5.4K30

    RxHttp ,比Retrofit 更优雅的协程体验

    ,再有就是多个注解非法在一起使用时,只有在编译期间才能给我们明确的错误,这也是我刚上手Retrofit比较头疼的一点。...= 200(假设200代表数据正确),就会拿到msg字段给用户一些错误提示,如果等于200,就拿到data字段去更新UI,常规的操作是这样的 val response = RxHttp.get("/service...Student)刷新UI } else { //拿到msg字段给出错误提示 } 试想一下,一个项目少说也有30+个这样的接口,如果每个接口读取这么判断,就显得不够优雅,也可以说是灾难,相信也没有人会这么干...而且对于UI来说,只需要data字段即可,错误提示啥的我管不着。 那有没有什么办法,能直接拿到data字段,并且对code做出统一判断呢?...其实it就是Throwable对象,而msg、code是Throwable的扩展字段,这需要我们自己为其扩展,代码如下: val Throwable.code: Int get() =

    2.2K20

    「玲珑宝塔」优化 Apk 包大小

    1.3 开启压缩、混淆(减少 2.4 MB) 根据 Google 官网解释,当我们使用 Android Gradle 3.4.0 或者更高版本时,默认会启用 R8 编译器进行压缩、混淆以及优化,主要项以及作用如下...例如,如果 R8 检测到从未采用过给定 if/else 语句的 else {} 分支,R8 便会移除 else {} 分支的代码。 这里需要注意一下: 默认情况下并不启用压缩、混淆和代码优化功能。...> w int mMultiChoiceItemLayout -> M boolean mShowTitle -> P int mViewSpacingLeft...R8 每次运行时都会创建一个 mapping.txt 文件,其中列出了混淆过的类、方法和字段名称与原始名称的映射关系。此映射文件还包含用于将行号映射回原始源文件行号的信息。...这块步骤如下: 导入 Mapping 文件 将混淆错误日志拷贝黏贴到 Obfuscated stack trace 中 点击右下角的 ReTrace!

    83320

    R8 编译器: 为 Kotlin 库和应用 瘦身

    元数据注解的 d1 字段包含了大部分实际的内容,它们以 protocol buffer 消息的形式存在。元数据内容的具体意义并不重要。...R8 重写 Kotlin 元数据 为了解决上述问题,扩展R8 增加了维护和重写 Kotlin 元数据的功能。它内嵌了 JetBrains 在 R8 中开发的 Kotlin 元数据开发库。...元数据信息被存储在 R8 的内部数据结构中。当 R8 完成对开发库或者应用的优化和缩小工作,它会为所有声明被保留的 Kotlin 类合成新的正确元数据。 来一起看一下我们的示例有哪些变化。...现在,启用缩减所生成的库,里面的 CommandBuilderBase 被重命名为 a。...现在 R8 可以在所有保留类中正确重写 Kotlin 元数据,我们可以通过使用下面的缩减器配置启用重写。

    98130
    领券