Исключение нулевого указателя в Libgdx

1

Я не работал с libgdx в течение последних 3 месяцев, и теперь я попытался создать простую игру, но когда я импортировал баннеры libgdx и запустил приложение на своем мобильном телефоне (Android), он разбился. Я нашел в сети, что версия ADT обрабатывает все библиотеки. Поэтому я поместил баннеры Libgdx в папку libs, но все равно приложение вылетает.

LogCat:

Неподчиненный обработчик: поток, выходящий из-за неперехваченного исключения

java.lang.RuntimeException: невозможно возобновить работу {com.class.path/com.class.path.ExampleActivity}: java.lang.NullPointerException

после этого у меня есть 10 ссылок на классы Android (например: at android.app.ActivityThread.main...), и у меня есть это:

Вызвано: java.lang.NullPointerException в com.badlogic.gdx.backends.android.AndroidApplication.onResume(AndroidApplication.java:223)

В строке 223 в источнике libgdx я нашел это:

((AndroidInput) getInput()) registerSensorListeners().

ExampleActivity:

открытый класс ExampleActivity расширяет приложение AndroidApplication {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    initialize(new Game(), false);
} 

}

Игра: public class Game реализует ApplicationListener {

@Override
public void create() {

}

@Override
public void dispose() {
    // TODO Auto-generated method stub

}

@Override
public void pause() {
    // TODO Auto-generated method stub

}

@Override
public void render() {
}

@Override
public void resize(int arg0, int arg1) {
    // TODO Auto-generated method stub

}

@Override
public void resume() {
    // TODO Auto-generated method stub

}

}

PS: Извините за мой плохой английский

  • 0
    добавьте свой logcat и соответствующий код
  • 0
    Вы видите несколько исключений? Это странно для libGDX потерпеть неудачу в onResume, если onCreate завершился успешно. Иногда я видел ошибки в onResume, если onCreate безуспешно завершается неудачей, поэтому проверьте, не выводятся ли другие исключения?
Показать ещё 3 комментария
Теги:
libgdx
nullpointerexception

1 ответ

0

Я тоже столкнулся с этим вопросом. и исправил его, используя код, основанный на ModelPreiviewApp

private boolean backFaceCulling = true;
private boolean alphaBlending = false;
private float alphaTest = -1;


public void setAlphaBlending(ModelInstance modelInstance, boolean alphaBlendingEnabled){
    if(modelInstance != null){
        if(alphaBlendingEnabled){
            for (Material mat : modelInstance.materials) {
                mat.set(new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA));
            }
        }else{
            for (Material mat : modelInstance.materials) {
                mat.remove(BlendingAttribute.Type);
            }
        }
    }
}

public void setAlphaTest(ModelInstance modelInstance, float alphaTestValue){
    if(modelInstance != null){
        if(alphaTestValue>=0){
            for (Material mat : modelInstance.materials) {
                mat.set(new FloatAttribute(FloatAttribute.AlphaTest, alphaTestValue));
            }
        }else{
            for (Material mat : modelInstance.materials) {
                mat.remove(FloatAttribute.AlphaTest);
            }
        }
    }
}


public void setBackFaceCulling(ModelInstance modelInstance, boolean backFaceCullinEnabled) {

    if (modelInstance != null) {
        if (backFaceCullinEnabled) {
            for (Material mat : modelInstance.materials) {
                mat.remove(IntAttribute.CullFace);
            }
        } else {
            for (Material mat : modelInstance.materials) {
                mat.set(new IntAttribute(IntAttribute.CullFace, 0));
            }
        }
    }
}

public void onModelLoaded(ModelInstance modelInstance) {
    ...
    setBackFaceCulling(modelInstance, true);
    setAlphaBlending(modelInstance, false);
    setAlphaTest(modelInstance, -1);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню