Приложение для Android разбилось при добавлении объекта в список ArrayList

#java #android #android-studio #arraylist #add

#Ява #Android #android-студия #список объектов #Добавить

Вопрос:

Я новичок в этом, так что приношу извинения за любые ошибки.

Контекст: в рамках обучения объекту я пытаюсь добавить список упражнений с объектами. Однако. Каждый раз, когда я пытаюсь добавить упражнение с объектом в список упражнений, приложение выходит из строя. Любая помощь приветствуется.

Объекты Тренировки и упражнения выглядят так

 public class Training {  public Integer trainingNumber;  public Date datum;  public Integer nrOfExercises;  public ArrayListlt;Exercisegt; exercises; }  public class Training {  public Integer trainingNumber;  public Date datum;  public Integer nrOfExercises;  public ArrayListlt;Exercisegt; exercises; }  

Код, пытающийся сгенерировать все это, выглядит следующим образом:

 private Training createRandomTraining(int i){  Training randomTraining = new Training();  Random random = new Random();   int d = random.nextInt(30) 1;  int m = random.nextInt(12) 1;  //int y = random.nextInt(21) 2000;  int amountOfExercises = random.nextInt(9-6) 6;   randomTraining.trainingNumber = i;  randomTraining.datum = new Date(2021,m,d);   for (int j = 0; j lt; amountOfExercises ; j   ){  Exercise exercise = new Exercise();  Random r = new Random();   int set = r.nextInt(5) 1;  int nameInt = r.nextInt(3);  int rep = r.nextInt(12) 1;  //int y = random.nextInt(21) 2000;   exercise.trainingNumber = i;  exercise.exerciseNumber = j 1;  exercise.exerciseName = getExerciseName(nameInt);  exercise.sets = set;  exercise.reps = rep;  exercise.weight = random.nextInt(200-50) 50;   randomTraining.exercises.add(exercise); //the app crashes here. //The other parts work fine.  }   randomTraining.nrOfExercises = amountOfExercises;  return randomTraining;  }  

Комментарии:

1. Пожалуйста, не могли бы вы поделиться журналом ошибок?

2. Я предполагаю, что это NullPointerException А. Ваше определение класса Training не инициализируется Listlt;Exercisegt; exercises = new ArrayListlt;gt;() , поэтому вы не можете #add в этой строке кода.

3. Это сработало!! Добавление спискаlt;Упражнениеgt; упражнения = новый ArrayListlt;Упражнениеgt;lt;gt;() до того, как цикл for исправил это. Огромное спасибо!