Android 安卓M+;改装+;JSON:Can';t使字段构造函数可访问

Android 安卓M+;改装+;JSON:Can';t使字段构造函数可访问,android,json,retrofit,Android,Json,Retrofit,我目前正在检查我的应用程序是否支持M。我在使用改型进行API调用时遇到此错误。这似乎是我得到的一个json错误。还有其他人碰到过吗?这是我的JSON助手类 public class JsonHelper { private static final String JSON_PARSE_ERROR = "Unable to parse JSON: "; private static Gson sGson; private static Gson sExposeGson;

我目前正在检查我的应用程序是否支持M。我在使用改型进行API调用时遇到此错误。这似乎是我得到的一个json错误。还有其他人碰到过吗?这是我的JSON助手类

public class JsonHelper {

    private static final String JSON_PARSE_ERROR = "Unable to parse JSON: ";
    private static Gson sGson;
    private static Gson sExposeGson;

    static {
        GsonBuilder builder = new GsonBuilder();
        builder.registerTypeAdapterFactory(new EnumTypeAdapterFactory());
        builder.registerTypeAdapter(BlogCategoryDto.class, new BlogCategorySerializer());
        ...

        sGson = builder.create();

        builder.excludeFieldsWithoutExposeAnnotation();
        sExposeGson = builder.create();
    }

    public static Gson getGson() {
        return sGson;
    }

    public static Gson getsExposeGsonGson() {
        return sExposeGson;
    }

    public static String toJson(@NonNull Object object) {
        return sGson.toJson(object);
    }

    public static String toJson(@NonNull Object object, @NonNull Type type) {
        return sGson.toJson(object, type);
    }

    public static String toExposeJson(@NonNull Object object) {
        return sExposeGson.toJson(object);
    }

    public static String toExposeJson(@NonNull Object object, @NonNull Type type) {
        return sExposeGson.toJson(object, type);
    }

    public static <T> T fromJson(@NonNull String content, @NonNull Class<T> clazz)
            throws IllegalStateException {
        try {
            return sGson.fromJson(content, clazz);
        } catch (JsonSyntaxException e) {
            throw new IllegalStateException(JSON_PARSE_ERROR + content, e);
        }
    }

    public static <T> T fromJson(@NonNull String content, @NonNull Type type)
            throws IllegalStateException {
        try {
            return sGson.fromJson(content, type);
        } catch (JsonSyntaxException e) {
            throw new IllegalStateException(JSON_PARSE_ERROR + content, e);
        }
    }
}
public类JsonHelper{
私有静态最终字符串JSON_PARSE_ERROR=“无法解析JSON:”;
专用静态Gson-sGson;
私有静态Gson-sExposeGson;
静止的{
GsonBuilder=新的GsonBuilder();
registerTypeAdapterFactory(新的EnumTypeAdapterFactory());
registerTypeAdapter(BlogCategoryDto.class,新的BlogCategorySerializer());
...
sGson=builder.create();
builder.excludeFieldswithout exposeannotation();
sExposeGson=builder.create();
}
公共静态Gson getGson(){
返回sGson;
}
公共静态Gson getsExposeGsonGson(){
返回六位塞格森;
}
公共静态字符串toJson(@NonNull Object){
返回sGson.toJson(对象);
}
公共静态字符串toJson(@NonNull对象,@NonNull类型){
返回sGson.toJson(对象,类型);
}
公共静态字符串toExposeJson(@NonNull Object){
返回sExposeGson.toJson(对象);
}
公共静态字符串toExposeJson(@NonNull Object Object,@NonNull Type){
返回sExposeGson.toJson(对象,类型);
}
公共静态T fromJson(@NonNull字符串内容,@NonNull类clazz)
抛出非法状态异常{
试一试{
返回sGson.fromJson(content,clazz);
}捕获(JsonSyntaxException e){
抛出新的非法状态异常(JSON_PARSE_ERROR+content,e);
}
}
公共静态T fromJson(@NonNull字符串内容,@NonNull类型)
抛出非法状态异常{
试一试{
返回sGson.fromJson(内容,类型);
}捕获(JsonSyntaxException e){
抛出新的非法状态异常(JSON_PARSE_ERROR+content,e);
}
}
}
这就是抛出的错误

D/Retrofit﹕java.lang.SecurityException: Can't make field constructor accessible
        at java.lang.reflect.Constructor.setAccessible(Constructor.java:334)
        at com.google.gson.internal.ConstructorConstructor.newDefaultConstructor(ConstructorConstructor.java:97)
        at com.google.gson.internal.ConstructorConstructor.get(ConstructorConstructor.java:79)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:82)
        at com.google.gson.Gson.getAdapter(Gson.java:359)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:52)
        at com.google.gson.Gson.getAdapter(Gson.java:359)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldAdapter(ReflectiveTypeAdapterFactory.java:122)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.access$100(ReflectiveTypeAdapterFactory.java:46)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:92)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:91)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:142)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:83)
        at com.google.gson.Gson.getAdapter(Gson.java:359)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldAdapter(ReflectiveTypeAdapterFactory.java:122)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.access$100(ReflectiveTypeAdapterFactory.java:46)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:92)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:91)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:142)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:83)
        at com.google.gson.Gson.getAdapter(Gson.java:359)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:52)
        at com.google.gson.Gson.getAdapter(Gson.java:359)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldAdapter(ReflectiveTypeAdapterFactory.java:122)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.access$100(ReflectiveTypeAdapterFactory.java:46)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:92)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:91)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:142)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:83)
        at com.google.gson.Gson.getAdapter(Gson.java:359)
        at com.google.gson.Gson.fromJson(Gson.java:809)
        at com.google.gson.Gson.fromJson(Gson.java:775)
        at retrofit.converter.GsonConverter.fromBody(GsonConverter.java:63)
        at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:367)
        at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220)
        at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.java:278)
        at retrofit.CallbackRunnable.run(CallbackRunnable.java:42)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
        at retrofit.Platform$Android$2$1.run(Platform.java:142)
        at java.lang.Thread.run(Thread.java:818)
D/改装﹕java.lang.SecurityException:无法使字段构造函数可访问
位于java.lang.reflect.Constructor.setAccessible(Constructor.java:334)
位于com.google.gson.internal.ConstructorConstructor.newDefaultConstructor(ConstructorConstructor.java:97)
位于com.google.gson.internal.ConstructorConstructor.get(ConstructorConstructor.java:79)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.create(ReflectTypeAdapterFactory.java:82)
位于com.google.gson.gson.getAdapter(gson.java:359)
位于com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:52)
位于com.google.gson.gson.getAdapter(gson.java:359)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.getFieldAdapter(ReflectTypeAdapterFactory.java:122)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.access$100(ReflectTypeAdapterFactory.java:46)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory$1。(ReflectTypeAdapterFactory.java:92)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.CreateBundfield(ReflectTypeAdapterFactory.java:91)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.getBoundFields(ReflectTypeAdapterFactory.java:142)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.create(ReflectTypeAdapterFactory.java:83)
位于com.google.gson.gson.getAdapter(gson.java:359)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.getFieldAdapter(ReflectTypeAdapterFactory.java:122)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.access$100(ReflectTypeAdapterFactory.java:46)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory$1。(ReflectTypeAdapterFactory.java:92)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.CreateBundfield(ReflectTypeAdapterFactory.java:91)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.getBoundFields(ReflectTypeAdapterFactory.java:142)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.create(ReflectTypeAdapterFactory.java:83)
位于com.google.gson.gson.getAdapter(gson.java:359)
位于com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:52)
位于com.google.gson.gson.getAdapter(gson.java:359)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.getFieldAdapter(ReflectTypeAdapterFactory.java:122)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.access$100(ReflectTypeAdapterFactory.java:46)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory$1。(ReflectTypeAdapterFactory.java:92)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.CreateBundfield(ReflectTypeAdapterFactory.java:91)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.getBoundFields(ReflectTypeAdapterFactory.java:142)
位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.create(ReflectTypeAdapterFactory.java:83)
位于com.google.gson.gson.getAdapter(gson.java:359)
位于com.google.gson.gson.fromJson(gson.java:809)
位于com.google.gson.gson.fromJson(gson.java:775)
位于改装.converter.GsonConverter.fromBody(GsonConverter.java:63)
在reformation.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:367)处
RestAdapter$RestHandler.access$100(RestAdapter.java:220)
在reformation.RestAdapter$RestHandler$2.GetainResponse(RestAdapter.java:278)
运行(CallbackRunnable.java:42)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
在java.util.conc
static {
    GsonBuilder builder = new GsonBuilder();

    ...

    builder.excludeFieldsWithModifiers(Modifier.FINAL, Modifier.TRANSIENT, Modifier.STATIC);**
    builder.excludeFieldsWithoutExposeAnnotation();
    sExposeGson = builder.create();
}
Retrofit retrofit = new Retrofit.Builder()
    .baseUrl(URLWebService)
    .addConverterFactory(GsonConverterFactory.create(
                           new GsonBuilder()
                           .excludeFieldsWithoutExposeAnnotation()
                           .create()
                        ))
    .client(okHttpClient)
    .build(); 
GsonBuilder builder = new GsonBuilder();
builder.excludeFieldsWithModifiers(Modifier.FINAL, Modifier.TRANSIENT, Modifier.STATIC);
Gson gson = builder.create();
  GsonBuilder builder = new GsonBuilder().excludeFieldsWithModifiers(Modifier.FINAL, Modifier.TRANSIENT, Modifier.STATIC);
  Gson gson = builder.create();
  Retrofit retrofit = new Retrofit.Builder().baseUrl(URL)
      .addConverterFactory(GsonConverterFactory.create(gson))
      .build();