java.lang.AssertionError:不可能的原因:java.lang.NoSuchMethodException:值[]

java.lang.AssertionError:不可能的原因:java.lang.NoSuchMethodException:值[],java,android,json,firebase,gson,Java,Android,Json,Firebase,Gson,发生了什么: public void loadDataSavedMatches() { SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE); Gson gson = new Gson(); String json = prefs.getString("task list", null); Type type = new TypeTok

发生了什么:

    public void loadDataSavedMatches() {
    SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
    Gson gson = new Gson();
    String json = prefs.getString("task list", null);
    Type type = new TypeToken<ArrayList<TennisMatch>>() {
    }.getType();
    mTennisMatches = gson.fromJson(json, type);

    if (mTennisMatches == null) {
        mTennisMatches = new ArrayList<>();
    }

    Log.i("LOAD DATA", String.valueOf(mTennisMatches));
    Log.i("LOAD DATA2", String.valueOf(prefs));

    //hashMap


    SharedPreferences hashPrefs = getSharedPreferences(HASH_MAP_SHARED_PREFS_FILE, Context.MODE_PRIVATE);
    Gson hashGson = new Gson();
    String hashJson = hashPrefs.getString("hashString", null);
    Type hashType = new TypeToken<HashMap<String, TennisMatch>>() {
    }.getType();
    item_map = hashGson.fromJson(hashJson, hashType);

    if (item_map == null) {
        item_map = new HashMap<String, TennisMatch>();
    }

}
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.myapp, PID: 28341
java.lang.AssertionError: impossible
    at java.lang.Enum$1.create(Enum.java:45)
    at java.lang.Enum$1.create(Enum.java:35)
    at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
    at java.lang.Enum.getSharedConstants(Enum.java:211)
    at java.lang.Class.getEnumConstants(Class.java:1063)
    at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(TypeAdapters.java:778)
    at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817)
    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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
    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 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 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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
    at com.google.gson.Gson.getAdapter(Gson.java:423)
    at com.google.gson.Gson.fromJson(Gson.java:887)
    at com.google.gson.Gson.fromJson(Gson.java:853)
    at com.google.gson.Gson.fromJson(Gson.java:802)
    at com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282)
    at com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87)
    at android.app.Activity.performCreate(Activity.java:6102)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
    at android.app.ActivityThread.access$1200(ActivityThread.java:165)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5593)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
 Caused by: java.lang.NoSuchMethodException: values []
    at java.lang.Class.getMethod(Class.java:664)
    at java.lang.Class.getDeclaredMethod(Class.java:626)
    at java.lang.Enum$1.create(Enum.java:41)
    at java.lang.Enum$1.create(Enum.java:35) 
    at libcore.util.BasicLruCache.get(BasicLruCache.java:54) 
    at java.lang.Enum.getSharedConstants(Enum.java:211) 
    at java.lang.Class.getEnumConstants(Class.java:1063) 
    at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(TypeAdapters.java:778) 
    at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817) 
    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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53) 
    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 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 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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53) 
    at com.google.gson.Gson.getAdapter(Gson.java:423) 
    at com.google.gson.Gson.fromJson(Gson.java:887) 
    at com.google.gson.Gson.fromJson(Gson.java:853) 
    at com.google.gson.Gson.fromJson(Gson.java:802) 
    at com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282) 
    at com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87) 
    at android.app.Activity.performCreate(Activity.java:6102) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
    at android.app.ActivityThread.access$1200(ActivityThread.java:165) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5593) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
  • 我有多个对象保存在arraylist中,arraylist保存在gson字符串中
  • 我更改了对象的类(以包含更多变量和getter/setter方法)
  • 现在,我在尝试加载旧对象时遇到错误(保存在步骤1中)
  • 需要考虑的事项:

        public void loadDataSavedMatches() {
        SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
        Gson gson = new Gson();
        String json = prefs.getString("task list", null);
        Type type = new TypeToken<ArrayList<TennisMatch>>() {
        }.getType();
        mTennisMatches = gson.fromJson(json, type);
    
        if (mTennisMatches == null) {
            mTennisMatches = new ArrayList<>();
        }
    
        Log.i("LOAD DATA", String.valueOf(mTennisMatches));
        Log.i("LOAD DATA2", String.valueOf(prefs));
    
        //hashMap
    
    
        SharedPreferences hashPrefs = getSharedPreferences(HASH_MAP_SHARED_PREFS_FILE, Context.MODE_PRIVATE);
        Gson hashGson = new Gson();
        String hashJson = hashPrefs.getString("hashString", null);
        Type hashType = new TypeToken<HashMap<String, TennisMatch>>() {
        }.getType();
        item_map = hashGson.fromJson(hashJson, hashType);
    
        if (item_map == null) {
            item_map = new HashMap<String, TennisMatch>();
        }
    
    }
    
    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.android.myapp, PID: 28341
    java.lang.AssertionError: impossible
        at java.lang.Enum$1.create(Enum.java:45)
        at java.lang.Enum$1.create(Enum.java:35)
        at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
        at java.lang.Enum.getSharedConstants(Enum.java:211)
        at java.lang.Class.getEnumConstants(Class.java:1063)
        at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(TypeAdapters.java:778)
        at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817)
        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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
        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 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 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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
        at com.google.gson.Gson.getAdapter(Gson.java:423)
        at com.google.gson.Gson.fromJson(Gson.java:887)
        at com.google.gson.Gson.fromJson(Gson.java:853)
        at com.google.gson.Gson.fromJson(Gson.java:802)
        at com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282)
        at com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87)
        at android.app.Activity.performCreate(Activity.java:6102)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
        at android.app.ActivityThread.access$1200(ActivityThread.java:165)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5593)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
     Caused by: java.lang.NoSuchMethodException: values []
        at java.lang.Class.getMethod(Class.java:664)
        at java.lang.Class.getDeclaredMethod(Class.java:626)
        at java.lang.Enum$1.create(Enum.java:41)
        at java.lang.Enum$1.create(Enum.java:35) 
        at libcore.util.BasicLruCache.get(BasicLruCache.java:54) 
        at java.lang.Enum.getSharedConstants(Enum.java:211) 
        at java.lang.Class.getEnumConstants(Class.java:1063) 
        at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(TypeAdapters.java:778) 
        at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817) 
        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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53) 
        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 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 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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53) 
        at com.google.gson.Gson.getAdapter(Gson.java:423) 
        at com.google.gson.Gson.fromJson(Gson.java:887) 
        at com.google.gson.Gson.fromJson(Gson.java:853) 
        at com.google.gson.Gson.fromJson(Gson.java:802) 
        at com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282) 
        at com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87) 
        at android.app.Activity.performCreate(Activity.java:6102) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
        at android.app.ActivityThread.access$1200(ActivityThread.java:165) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5593) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
    
    我使用gson/json将arraylist存储在android共享首选项中。(共享首选项适用于其他值,错误出现在使用json/gson将字符串转换为arraylist时)

    我的代码:

        public void loadDataSavedMatches() {
        SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
        Gson gson = new Gson();
        String json = prefs.getString("task list", null);
        Type type = new TypeToken<ArrayList<TennisMatch>>() {
        }.getType();
        mTennisMatches = gson.fromJson(json, type);
    
        if (mTennisMatches == null) {
            mTennisMatches = new ArrayList<>();
        }
    
        Log.i("LOAD DATA", String.valueOf(mTennisMatches));
        Log.i("LOAD DATA2", String.valueOf(prefs));
    
        //hashMap
    
    
        SharedPreferences hashPrefs = getSharedPreferences(HASH_MAP_SHARED_PREFS_FILE, Context.MODE_PRIVATE);
        Gson hashGson = new Gson();
        String hashJson = hashPrefs.getString("hashString", null);
        Type hashType = new TypeToken<HashMap<String, TennisMatch>>() {
        }.getType();
        item_map = hashGson.fromJson(hashJson, hashType);
    
        if (item_map == null) {
            item_map = new HashMap<String, TennisMatch>();
        }
    
    }
    
    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.android.myapp, PID: 28341
    java.lang.AssertionError: impossible
        at java.lang.Enum$1.create(Enum.java:45)
        at java.lang.Enum$1.create(Enum.java:35)
        at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
        at java.lang.Enum.getSharedConstants(Enum.java:211)
        at java.lang.Class.getEnumConstants(Class.java:1063)
        at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(TypeAdapters.java:778)
        at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817)
        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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
        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 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 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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
        at com.google.gson.Gson.getAdapter(Gson.java:423)
        at com.google.gson.Gson.fromJson(Gson.java:887)
        at com.google.gson.Gson.fromJson(Gson.java:853)
        at com.google.gson.Gson.fromJson(Gson.java:802)
        at com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282)
        at com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87)
        at android.app.Activity.performCreate(Activity.java:6102)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
        at android.app.ActivityThread.access$1200(ActivityThread.java:165)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5593)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
     Caused by: java.lang.NoSuchMethodException: values []
        at java.lang.Class.getMethod(Class.java:664)
        at java.lang.Class.getDeclaredMethod(Class.java:626)
        at java.lang.Enum$1.create(Enum.java:41)
        at java.lang.Enum$1.create(Enum.java:35) 
        at libcore.util.BasicLruCache.get(BasicLruCache.java:54) 
        at java.lang.Enum.getSharedConstants(Enum.java:211) 
        at java.lang.Class.getEnumConstants(Class.java:1063) 
        at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(TypeAdapters.java:778) 
        at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817) 
        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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53) 
        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 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 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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53) 
        at com.google.gson.Gson.getAdapter(Gson.java:423) 
        at com.google.gson.Gson.fromJson(Gson.java:887) 
        at com.google.gson.Gson.fromJson(Gson.java:853) 
        at com.google.gson.Gson.fromJson(Gson.java:802) 
        at com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282) 
        at com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87) 
        at android.app.Activity.performCreate(Activity.java:6102) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
        at android.app.ActivityThread.access$1200(ActivityThread.java:165) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5593) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
    
    public void loadDataSavedMatches(){
    SharedReferences prefs=getSharedReferences(共享的\u prefs\u文件,Context.MODE\u PRIVATE);
    Gson Gson=新的Gson();
    String json=prefs.getString(“任务列表”,null);
    Type Type=new-TypeToken(){
    }.getType();
    mTennisMatches=gson.fromJson(json,类型);
    if(mTennisMatches==null){
    mTennisMatches=新的ArrayList();
    }
    Log.i(“加载数据”,String.valueOf(mTennisMatches));
    Log.i(“加载数据2”,String.valueOf(prefs));
    //哈希映射
    SharedReferences hashPrefs=GetSharedReferences(HASH\u MAP\u SHARED\u PREFS\u文件,Context.MODE\u PRIVATE);
    Gson hashGson=新的Gson();
    String hashJson=hashPrefs.getString(“hashString”,null);
    类型hashType=新类型令牌(){
    }.getType();
    item_map=hashGson.fromJson(hashJson,hashType);
    如果(项映射==null){
    item_map=new HashMap();
    }
    }
    
    错误消息:

        public void loadDataSavedMatches() {
        SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
        Gson gson = new Gson();
        String json = prefs.getString("task list", null);
        Type type = new TypeToken<ArrayList<TennisMatch>>() {
        }.getType();
        mTennisMatches = gson.fromJson(json, type);
    
        if (mTennisMatches == null) {
            mTennisMatches = new ArrayList<>();
        }
    
        Log.i("LOAD DATA", String.valueOf(mTennisMatches));
        Log.i("LOAD DATA2", String.valueOf(prefs));
    
        //hashMap
    
    
        SharedPreferences hashPrefs = getSharedPreferences(HASH_MAP_SHARED_PREFS_FILE, Context.MODE_PRIVATE);
        Gson hashGson = new Gson();
        String hashJson = hashPrefs.getString("hashString", null);
        Type hashType = new TypeToken<HashMap<String, TennisMatch>>() {
        }.getType();
        item_map = hashGson.fromJson(hashJson, hashType);
    
        if (item_map == null) {
            item_map = new HashMap<String, TennisMatch>();
        }
    
    }
    
    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.android.myapp, PID: 28341
    java.lang.AssertionError: impossible
        at java.lang.Enum$1.create(Enum.java:45)
        at java.lang.Enum$1.create(Enum.java:35)
        at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
        at java.lang.Enum.getSharedConstants(Enum.java:211)
        at java.lang.Class.getEnumConstants(Class.java:1063)
        at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(TypeAdapters.java:778)
        at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817)
        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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
        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 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 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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
        at com.google.gson.Gson.getAdapter(Gson.java:423)
        at com.google.gson.Gson.fromJson(Gson.java:887)
        at com.google.gson.Gson.fromJson(Gson.java:853)
        at com.google.gson.Gson.fromJson(Gson.java:802)
        at com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282)
        at com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87)
        at android.app.Activity.performCreate(Activity.java:6102)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
        at android.app.ActivityThread.access$1200(ActivityThread.java:165)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5593)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
     Caused by: java.lang.NoSuchMethodException: values []
        at java.lang.Class.getMethod(Class.java:664)
        at java.lang.Class.getDeclaredMethod(Class.java:626)
        at java.lang.Enum$1.create(Enum.java:41)
        at java.lang.Enum$1.create(Enum.java:35) 
        at libcore.util.BasicLruCache.get(BasicLruCache.java:54) 
        at java.lang.Enum.getSharedConstants(Enum.java:211) 
        at java.lang.Class.getEnumConstants(Class.java:1063) 
        at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(TypeAdapters.java:778) 
        at com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817) 
        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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53) 
        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 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 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 com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53) 
        at com.google.gson.Gson.getAdapter(Gson.java:423) 
        at com.google.gson.Gson.fromJson(Gson.java:887) 
        at com.google.gson.Gson.fromJson(Gson.java:853) 
        at com.google.gson.Gson.fromJson(Gson.java:802) 
        at com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282) 
        at com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87) 
        at android.app.Activity.performCreate(Activity.java:6102) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
        at android.app.ActivityThread.access$1200(ActivityThread.java:165) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5593) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
    
    E/AndroidRuntime:致命异常:主
    进程:com.android.myapp,PID:28341
    java.lang.AssertionError:不可能
    位于java.lang.Enum$1.create(Enum.java:45)
    位于java.lang.Enum$1.create(Enum.java:35)
    位于libcore.util.basiclucache.get(basiclucache.java:54)
    位于java.lang.Enum.getSharedConstants(Enum.java:211)
    位于java.lang.Class.getEnumConstants(Class.java:1063)
    位于com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.(TypeAdapters.java:778)
    位于com.google.gson.internal.bind.TypeAdapters$30.create(TypeAdapters.java:817)
    位于com.google.gson.gson.getAdapter(gson.java:423)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.CreateBundfield(ReflectTypeAdapterFactory.java:115)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.getBoundFields(ReflectTypeAdapterFactory.java:164)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.create(ReflectTypeAdapterFactory.java:100)
    位于com.google.gson.gson.getAdapter(gson.java:423)
    位于com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
    位于com.google.gson.gson.getAdapter(gson.java:423)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.CreateBundfield(ReflectTypeAdapterFactory.java:115)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.getBoundFields(ReflectTypeAdapterFactory.java:164)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.create(ReflectTypeAdapterFactory.java:100)
    位于com.google.gson.gson.getAdapter(gson.java:423)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.CreateBundfield(ReflectTypeAdapterFactory.java:115)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.getBoundFields(ReflectTypeAdapterFactory.java:164)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.create(ReflectTypeAdapterFactory.java:100)
    位于com.google.gson.gson.getAdapter(gson.java:423)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.CreateBundfield(ReflectTypeAdapterFactory.java:115)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.getBoundFields(ReflectTypeAdapterFactory.java:164)
    位于com.google.gson.internal.bind.ReflectTypeAdapterFactory.create(ReflectTypeAdapterFactory.java:100)
    位于com.google.gson.gson.getAdapter(gson.java:423)
    位于com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
    位于com.google.gson.gson.getAdapter(gson.java:423)
    位于com.google.gson.gson.fromJson(gson.java:887)
    位于com.google.gson.gson.fromJson(gson.java:853)
    位于com.google.gson.gson.fromJson(gson.java:802)
    在com.android.myapp.Activity.loadDataSavedMatches(ItemMatchListActivity.java:282)上
    在com.android.myapp.Activity.onCreate(ItemMatchListActivity.java:87)上
    在android.app.Activity.performCreate(Activity.java:6102)上
    位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
    在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)上
    位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
    在android.app.ActivityThread.access$1200(ActivityThread.java:165)
    在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)上
    位于android.os.Handler.dispatchMessage(Handler.java:102)
    位于android.os.Looper.loop(Looper.java:135)
    位于android.app.ActivityThread.main(ActivityThread.java:5593)
    位于java.lang.reflect.Method.invoke(本机方法)
    位于java.lang.reflect.Method.invoke(Method.java:372)
    在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)上
    位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
    原因:java.lang.NoSuchMethodException:值[]
    位于java.lang.Class.getMethod(Class.java:664)
    位于java.lang.Class.getDeclaredMethod(Class.java:626)
    位于java.lang.Enum$1.create(Enum.java:41)
    位于java.lang.Enum$1.create(Enum.java:35)
    位于libcore.util.basiclucache.get(basiclucache.java:54)
    位于java.lang.Enum.getSharedConstants(Enum.java:211)
    位于java.lang.Class.getEnumConstants(Class.java:1063)
    位于com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.(TypeAdapters.java:778)
    位于com.google.gson.internal.bind.TypeAdapters$