у меня есть некоторые проблемы с моим кодом с плагином под кодовым названием
он говорит мне, что есть исключение nullpointer, но тот же код работает на некоторых других компьютерах, так что я не знаю, откуда именно проблема
Form hi = new Form("Hi World");
SpanLabel sp = new SpanLabel();
hi.add(sp);
hi.show();
ConnectionRequest con = new ConnectionRequest();
con.setUrl("http://localhost/pidev2017/select.php");
con.addResponseListener(new ActionListener<NetworkEvent>() {
@Override
public void actionPerformed(NetworkEvent evt) {
System.out.println(getListEtudiant(new String(con.getResponseData())));
sp.setText(getListEtudiant(new String(con.getResponseData())) + "");
hi.refreshTheme();
}
});
NetworkManager.getInstance().addToQueue(con);
}
public ArrayList<Etudiant> getListEtudiant(String json) {
ArrayList<Etudiant> listEtudiants = new ArrayList<>();
try {
JSONParser j = new JSONParser();
Map<String, Object> etudiants = j.parseJSON(new CharArrayReader(json.toCharArray()));
System.out.println();
List<Map<String, Object>> list = (List<Map<String, Object>>) etudiants.get("etudiant");
for (Map<String, Object> obj : list) {
Etudiant e = new Etudiant();
e.setAge(Integer.parseInt(obj.get("age").toString()));
e.setCin(obj.get("cin").toString());
e.setNom(obj.get("nom").toString());
listEtudiants.add(e);
}
} catch (IOException ex) {
}
return listEtudiants;
}
это ошибка, которую я получаю
java.lang.NullPointerException
[EDT] 0: 0: 0,2 — ожидаемое значение NULL для значения ключа при разборе токена JSON в строке: 2 столбец: 72 буфер: e1elxde-exe-dlde1ell
[EDT] 0: 0: 0,2 — ожидаемое значение NULL для значения ключа при разборе токена JSON в строке: 2 столбец: 85 буфер: e1elxde-exe-dlde1ell0elldd
[EDT] 0: 0: 0,2 — ожидаемое значение true для значения ключа при разборе токена JSON в строке: 3 столбец: 2 буфер: e1elxde-exe-dlde1ell0elldd1
[EDT] 0: 0: 0,2 — ожидаемое значение true для значения ключа при разборе токена JSON в строке: 3 столбец: 3 буфер: e1elxde-exe-dlde1ell0elldd1
[EDT] 0: 0: 0,2 — ожидаемое значение NULL для значения ключа при разборе токена JSON в строке: 3 столбец: 7 буфер: e1elxde-exe-dlde1ell0elldd1l
[EDT] 0: 0: 0,2 — ожидаемое значение true для значения ключа при разборе токена JSON в строке: 3 столбец: 10 буфер: e1elxde-exe-dlde1ell0elldd1lef
[EDT] 0: 0: 0,2 — ожидаемое значение null для значения ключа при разборе токена JSON в строке: 3 столбец: 34 буфер: e1elxde-exe-dlde1ell0elldd1leflf57900l
at com.mycompany.myapp.MyApplication.getListEtudiant(MyApplication.java:80)
at com.mycompany.myapp.MyApplication$1.actionPerformed(MyApplication.java:59)
at com.mycompany.myapp.MyApplication$1.actionPerformed(MyApplication.java:55)
at com.codename1.ui.util.EventDispatcher.fireActionSync(EventDispatcher.java:459)
at com.codename1.ui.util.EventDispatcher.access$100(EventDispatcher.java:45)
at com.codename1.ui.util.EventDispatcher$CallbackClass.run(EventDispatcher.java:95)
at com.codename1.ui.Display.processSerialCalls(Display.java:1152)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1096)
at com.codename1.ui.Display.mainEDTLoop(Display.java:997)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
Как говорит трассировка стека getListEtudiant
имеет исключение нулевого указателя в строке 80. Так как я не могу сказать строку 80 и понятия не имею, что является входным значением, я не могу дать вам более точный ответ, но вот общий.
Поместите точку останова в отладчик в строке 80, когда вы нажимаете эту точку останова, используйте инструмент проверки переменных, чтобы проверить различные элементы и выяснить, почему эта строка не работает.
Также откройте инструмент мониторинга сети в симуляторе и проверьте вызовы запрос / ответ, это поможет понять, где что-то пошло не так.
Других решений пока нет …