Это простое приложение, которое управляет вашими домашними растениями. После того, как я добавил опцию изображения растения, приложение загружается только при первом его открытии. если я не добавлю какие-либо растения, все начнется нормально, но когда я добавлю растение с или без снятого изображения, оно не запустится снова, если я не удаляю его, не переустанавливаю или не очищаю все данные
Вот код, куда я сохраняю и загружаю из SharedPreferences :
private void saveData(){
SharedPreferences sharedPreferences = getSharedPreferences("sharedPreferences",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
Gson gson = new Gson();
String json = gson.toJson(plants);
editor.putString("plant list",json);
editor.apply();
}
private void loadData(){
SharedPreferences sharedPreferences = getSharedPreferences("sharedPreferences",MODE_PRIVATE);
Gson gson = new Gson();
String json = sharedPreferences.getString("plant list",null);
java.lang.reflect.Type type = new TypeToken<ArrayList<Plant>>() {}.getType();
plants = gson.fromJson(json,type);
if(plants == null){
plants = new ArrayList<>();
}
//Gets all the names of the plants in "plantNames"
for (int i = 0 ; i<plants.size();i++){
plantNames.add(plants.get(i).getName());
}
}
Вот логкат :
2020-02-27 01:46:57.809 13409-13409/? I/e.digitalgarde: Not late-enabling -Xcheck:jni (already on)
2020-02-27 01:46:57.982 13409-13409/? W/e.digitalgarde: Unexpected CPU variant for X86 using defaults: x86
2020-02-27 01:46:58.647 13409-13420/com.example.digitalgarden I/e.digitalgarde: Background concurrent copying GC freed 19620(7MB) AllocSpace objects, 0(0B) LOS objects, 58% free, 1071KB/2MB, paused 1.262ms total 115.840ms
2020-02-27 01:46:58.798 13409-13409/com.example.digitalgarden W/e.digitalgarde: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2020-02-27 01:46:58.801 13409-13409/com.example.digitalgarden W/e.digitalgarde: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2020-02-27 01:46:58.967 13409-13409/com.example.digitalgarden W/e.digitalgarde: Accessing hidden field Lsun/misc/Unsafe;->theUnsafe:Lsun/misc/Unsafe; (light greylist, reflection)
2020-02-27 01:46:59.000 13409-13409/com.example.digitalgarden D/OpenGLRenderer: Skia GL Pipeline
2020-02-27 01:46:59.156 13409-13409/com.example.digitalgarden A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xff6ec5c0 in tid 13409 (e.digitalgarden), pid 13409 (e.digitalgarden)
Любая помощь будет высоко ценится :)
edit 1: Это происходит, когда я вызываю метод loadData. Он загружает массив растительных объектов из sharredPreferences, вот код для объекта Plant:
public class Plant {
private String name;
private String type;
private int waterLevel;
private Bitmap plantPicture;
public Plant(String n,String t,int w,Bitmap pp){
setName(n);
setType(t);
setWaterLevel(w);
setPlantPicture(pp);
}
public void waterPlant(){
this.waterLevel = 100;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getType(){
return type;
}
public void setType(String type){
this.type = type;
}
public int getWaterLevel(){
return waterLevel;
}
public void setWaterLevel(int waterLevel){
this.waterLevel = waterLevel;
}
public Bitmap getPlantPicture(){return this.plantPicture;}
public void setPlantPicture(Bitmap pic){this.plantPicture = pic;}
}
Примечание: приложение не падало до того, как я добавил функцию изображения растения.