Я пытался решить эту проблему в течение нескольких недель, но сейчас я не знаю, что делать сейчас.
Я думаю, что на некоторых устройствах Android недостаточно памяти для загрузки количества текстур, хотя это может быть причиной чего-то иного, поскольку я сказал, что действительно не знаю, что с этим делать.
Всего загружено 28 PNG всего 1024x1024, что в сумме составляет 4,8 мг. Ниже приведен метод OpenGL для загрузки текстур
GL10 gl = glGraphics.getGL();
int[] textureIds = new int[1];
gl.glGenTextures(1, textureIds, 0);
textureId = textureIds[0];
InputStream in = null;
try {
in = fileIO.readAsset(fileName);
Bitmap bitmap = BitmapFactory.decodeStream(in);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
setFilters(GL10.GL_LINEAR , GL10.GL_LINEAR);
gl.glBindTexture(GL10.GL_TEXTURE_2D, 0);
width = bitmap.getWidth();
height = bitmap.getHeight();
bitmap.recycle();
} catch(IOException e) {
throw new RuntimeException("Couldn't load texture '" + fileName +"'", e);
} finally {
if(in != null)
try { in.close(); } catch (IOException e) { }
}
На моем Desire HD проблем нет, но на HTC Cha Cha многие текстуры вообще не отображаются, а на Galaxy S две текстуры просто кажутся белыми. Ча Ча выдает эту ошибку при загрузке текстур
02-04 15: 46: 28.907: E / Adreno200-ES20 (1501): override1 = 0xfffffffe,
override2 = 0xfff *
Странно, если Ча Ча заблокирован (текстуры OpenGL уничтожены), а затем разблокирован (перезагружены текстуры), то конкретные текстуры, которых там изначально не было, теперь есть, однако различные текстуры теперь не видны.
Это проблема с памятью? Если так, есть ли способ обойти это?
Спасибо