#java #eclipse #swt
#java #eclipse #swt
Вопрос:
Я программировал SWT-приложение, когда внезапно появилось это сообщение. Я искал в Интернете, но проблема часто была связана с разработкой Android…
Я заметил, что проблема вызвана этой функцией:
private static int writeCharacter(String p)
{
switch(p)
{
case "\x0000":
return 0x0000;
case "\x0001":
return 0x0001;
case "ぁ":
return 0x0002;
case "あ":
return 0x0003;
case "ぃ":
return 0x0004;
case "い":
return 0x0005;
case "ぅ":
return 0x0006;
...
default:
return 0x0000;
}
}
(… обозначает многие другие записи)
Что не так, я использую Eclipse 4.3 под Windows 7 Ultimate 64 bit?
РЕДАКТИРОВАТЬ: я обновил Eclipse с 4.3 до 4.4, но проблема все еще существует… Я действительно не знаю, что делать…
Комментарии:
1. Проверьте просмотр журнала ошибок для получения подробной информации о сбое или, по крайней мере, трассировки стека.
2. В нем говорится «Информация не может быть нулевой!», Но ничего конкретного…
Ответ №1:
Хорошо, я искал в Интернете, и, похоже, это распространенная ошибка, связанная с eclipse, а не с кодом Java…
Я решил это, преобразовав switch в mega if-else if-else
private static int writeCharacter(String p)
{
if(p== "\x0000")
return 0x0000;
else if(p== "\x0001")
return 0x0001;
else if(p== "ぁ")
return 0x0002;
else if(p== "あ")
return 0x0003;
else if(p== "ぃ")
return 0x0004;
else if(p== "い")
return 0x0005;
else if(p== "ぅ")
return 0x0006;
...
else
return 0x0000;
}
Я надеюсь, что это может кому-то помочь 🙂
Ответ №2:
Возникла та же проблема, которая должна быть ошибкой eclipse в соответствии с bugs.eclipse.org. Должно быть исправлено в eclipse 4.5, но обновление до этой версии мне не помогло.
Я свел проблему компиляции к этой строке кода
IIOImage iioImage = new IIOImage(im, null, pngmeta);
При комментариях eclipse строится правильно.