Я не работал с 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: Извините за мой плохой английский
Я тоже столкнулся с этим вопросом. и исправил его, используя код, основанный на 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);
}