libGDX черный экран в "Android", отлично работает на "Desktop"
Слушайте - я пытаюсь изучить API libGDX, потому что хочу разработать небольшую кроссплатформенную игру, в основном для смартфонов (Android iOS).
Поэтому я начал новый проект со специальной установки libGDX, которую разработчики сделали, я установил Gradle на Eclipse, и все прошло отлично, я запустил "небольшую" демо-версию "Desktop", и она отлично работала (Linux, если это имеет значение).), Я даже сделал пару изменений в коде и сделал действительно маленькую игру, которая отлично работала.
А потом я захотел следовать своей основной цели и начать разработку для Android, поэтому я запустил эмулятор, создал новый чистый проект, и мне сказали, что приложение неожиданно остановилось, а затем я увидел, что для запуска opengl2 в эмуляторе Android Я должен поставить галочку в поле "gpu host", поэтому я сделал это.
Я перезапустил эмулятор, запустил свое приложение, и все, что я увидел, было черным экраном, и в консоли catlog мне сообщили следующую строку:
E / EGL_emulation (1191): rcCreateWindowSurface вернул 0
а также -
eglCreateWindowSurface (631): ошибка 3x3003 (EGL_BAD_ALLOC)
Я не знаю, что делать сейчас, я даже пытался запустить его на реальном устройстве Android, и я получил те же результаты, как я мог исправить эту проблему / ошибку?
РЕДАКТИРОВАТЬ: вот некоторые исходные файлы, если вам интересно -
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class FlappyRabbi extends ApplicationAdapter {
SpriteBatch batch;
Texture img;
@Override
public void create () {
batch = new SpriteBatch();
img = new Texture("badlogic.jpg");
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(img, 0, 0);
batch.end();
}
}
2 ответа
Решено - эмулятор, вероятно, не поддерживал GL2.0, я использовал отладку по USB на реальном устройстве Android, работает как шарм.
Как долго вы начали свой проект?
Возможно, вы все еще используете версию libgdx, в которой поддерживается OpenGL ES 1.x, и в этом случае вам может потребоваться сделать что-то подобное в вашем проекте Android:
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useGL20 = true; // important line
initialize(new YourGame(), config);