java.lang.NullPointerException на Mac, но не на Windows! - PullRequest
0 голосов
/ 26 февраля 2011

Я искал и искал решение этой проблемы, но, похоже, никто другой не испытывает его. Вот описание:

Я создаю игру на основе тайлов с некоторыми со-программистами. Мы используем класс базы данных для любой загрузки файлов и изображений. Все работает просто чудесно, пока мой Mac внезапно не выдал исключение NullPointerException мне в лицо. Странно то, что он работает на Mac другого чувака (та же модель и все остальное), и он отлично работал на моем компьютере за несколько минут до ошибки. Ничего не изменилось за это время.

Это происходило раньше, и тогда я переустановил ОС, которая разрешила проблему, так что это звучит как твик в Eclipse (который я использую как IDE) или в MacOS. У кого-нибудь есть идеи?

Проект можно найти на: https://github.com/Gadamagaska/Quantum-Man

Моя трассировка стека:

Exception in thread "main" java.lang.NullPointerException
    at entities.Level.getTile(Level.java:24)
    at database.Database.getTile(Database.java:206)
    at core.FoffyMain.drawBottomTiles(FoffyMain.java:82)
    at core.FoffyMain.draw(FoffyMain.java:64)
    at core.Core.gameLoop(Core.java:58)
    at core.Core.run(Core.java:34)
    at core.FoffyMain.main(FoffyMain.java:28)

Ответы [ 2 ]

0 голосов
/ 26 февраля 2011

вы можете иметь такие проверки

public int getTile(int layer, int x, int y){
    if(layers!=null && layers.length > layer && layers[layer].length > y && layers[layer][y].length > x)
    {
        return layers[layer][y][x];
    }
    return -1;
}

или просто обработать исключение нулевого указателя

public int getTile(int layer, int x, int y) {
    try{

    return layers[layer][y][x];
    }
    catch(NullPointerException npe)
    {
        return -1;
    }
}
0 голосов
/ 26 февраля 2011

Вы уверены, что это происходит только на вашем Mac?

Глядя на ваш код, мне кажется, что ваш класс Level пытается получить доступ к члену слоя до его инициализации.

Попробуйте инициализировать слой в конструкторе Level вместо метода addLayer, я думаю, он должен решить проблему или хотя бы ее часть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...