2014-11-11 3 views
0

Недавно я изо всех сил, чтобы найти источник сообщение о фатальной ошибке, что моя программа продолжает показывать:Как я могу исправить эту ошибку проверки?

Exception in thread "main" java.lang.VerifyError: Inconsistent stackmap frames at branch target 65 

Я пробовал много вещей, уже, в том числе: удаление всех файлов классов и их восстановление, копирование весь проект в новый проект, обновляя мою версию Eclipse (от Kepler до Luna) и изменяя код, где номер строки, которую дает сообщение об ошибке. Ничего не сработало, и я исключил редактор, поскольку другие java-проекты работают нормально. Я был бы очень признателен, если бы вы сообщили мне способ решить эту проблему.

Мой код может быть найден here. Ошибка имеет какое-то отношение к классу Chunk, но то, что конкретно я честно не знаю. Трассировка стека сообщения об ошибке:

at ca.ajweeks.igmc2014.level.Level.<init>(Level.java:22) 
at ca.ajweeks.igmc2014.state.GameState.init(GameState.java:36) 
at ca.ajweeks.igmc2014.state.StateManager.init(StateManager.java:34) 
at ca.ajweeks.igmc2014.state.StateManager.<init>(StateManager.java:29) 
at ca.ajweeks.igmc2014.Game.<init>(Game.java:38) 
at ca.ajweeks.igmc2014.Game.main(Game.java:51) 

EDIT: источник ошибки, кажется, был противный заявление примерочных с-ресурсов в методе ReadFile в классе Chunk. Я не знаю, есть ли ошибка в текущей версии java, которая вызывала это, или что-то общее с моей конкретной программой, так как использование обычного блока try-catch делает трюк. Спасибо всем за помощь!

+0

Вы уже прочитали http://stackoverflow.com/questions/100107/reasons-of-getting-a-java-lang-verifyerror? – azurefrog

+0

это тоже смутило бы меня :) Вы попробовали упростить строку '22' в' Level'? Вы создаете массив массивов объектов «Chunk», где каждый «Chunk» инициализируется с помощью пустых строк и ints и все в одной строке! Если я, где вы, я сначала создавал объекты, а затем создавал свои массивы, а потом собирал все вместе - в количестве строк по мере необходимости. Тогда ваше Исключение должно показать вам нечто более конкретное, где искать. Извините, если я не нашел вас ошибкой. Из интереса, почему вы используете уровни '"/"+ String.valueOf (level)' вместо уровней '"/"+ levels'? – GameDroids

+0

Теоретически вы не сможете вызвать такой особый аромат VerifyError (несогласованную карту стека), не модифицируя файл .class. Это может быть связано с тем, что у вас есть какой-то инструмент профилирования, который «массирует» файлы .class, возможно, встроенный в среду IDE. Одна необычная возможность заключается в том, что у вас есть две разные версии другого класса, на которые ссылается одна из неудачных версий - одна, упомянутая во время компиляции, а другая - при выполнении. –

ответ

0

Если вы разместите здесь соответствующий код, это позволит сэкономить много времени вместе со ссылкой на ваш код.

посмотреть эту тему Here Подобная ошибка и ее решение, надеемся, что это поможет.

Смежные вопросы