gpt4 book ai didi

Android混淆器Gson错误

转载 作者:搜寻专家 更新时间:2023-11-01 07:48:20 24 4
gpt4 key购买 nike

尝试将应用发布为版本时发生错误。错误很可能在即将到来的 Gson 中继续。而 retrofit guard 作为专业使用官方但是因为我不知道为什么。

这些库目前正在使用中。

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
apt 'com.jakewharton:butterknife-compiler:8.4.0'
compile 'com.jakewharton:butterknife:8.4.0'
compile 'com.android.support:support-v4:24.1.1'
compile 'com.android.support:support-annotations:24.1.1'
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:design:24.1.1'
compile 'io.reactivex:rxandroid:1.2.1'
compile 'com.trello:rxlifecycle:0.6.1'
compile 'com.trello:rxlifecycle-components:0.6.1'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.squareup.okhttp3:okhttp:3.3.1'
compile 'com.squareup.okhttp3:okhttp-urlconnection:3.3.1'
compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'jp.wasabeef:glide-transformations:2.0.1'
compile 'com.github.captain-miao:autofittextview:0.2.2'
compile 'com.artemzin.rxjava:proguard-rules:1.1.9.0'

ProGuard 也被如下使用:

-libraryjars libs
-keepattributes SourceFile,LineNumberTable
-dontwarn okio.**
-dontnote retrofit2.Platform
-dontnote retrofit2.Platform$IOS$MainThreadExecutor
-dontwarn retrofit2.Platform$Java8
-keepattributes Signature
-keepattributes Exceptions
-keepattributes Signature
-keepattributes *Annotation*
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.examples.android.model.** { *; }
-keep class com.google.gson.** { *; }

apk 制作精良。但是,如果运行会出现以下错误。

STACK_TRACE=java.lang.AssertionError: java.lang.NoSuchFieldException: OPTION
at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init> (TypeAdapters.java:808)
at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:834)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:115)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:164)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at d.b.a.a.a(GsonConverterFactory.java:63)
at d.at.a(Retrofit.java:325)
at d.at.b(Retrofit.java:308)
at d.ax.c(ServiceMethod.java:704)
at d.ax.a(ServiceMethod.java:167)
at d.at.a(Retrofit.java:166)
at d.au.invoke(Retrofit.java:145)
at java.lang.reflect.Proxy.invoke(Proxy.java:393)
at $Proxy2.b(Unknown Source)

Retro-fit 正在使用它。

            net = new Retrofit.Builder()
.baseUrl(SERVER_URL)
.addConverterFactory(GsonConverterFactory.create()) //Json Parser
.addCallAdapterFactory(RxJavaCallAdapterFactory.create()) //Rxandroid
.client(client)
.build()
.create(xxx.class);

最佳答案

你需要改变这一行

-keep class com.google.gson.examples.android.model.** { *;

到您的应用程序中的实际包,您通过 GSON 序列化/反序列化的模型所在的位置。

关于Android混淆器Gson错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39220366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com