GLSurfaceView mostrando negro en Nexus 7 con Android 4.2

Tengo una aplicación OpenGL ES2.0 que funciona en dispositivos que ejecutan varias versiones de Android desde 2.2 hasta 4.1. Sin embargo, me han dicho que cuando lo ejecuto en un Nexus 7 con Android 4.2, los gráficos 3D de la aplicación son negros. Sin embargo, la barra de acción y los diálogos funcionan bien. Lo he probado en un Nexus 7 emulado con procesador Intel Atom, HAX y GPU habilitados para ejecutar 4.2.2 y eso funciona bien. Hubiera preferido ejecutar la imagen ARM pero eso no parece incluir Open GL ES2.0

¿Alguien tiene alguna idea de lo que podría estar causando este problema en el Nexus 7 y cómo solucionarlo?

Una posibilidad es que la versión actual de la aplicación tenga el nivel de API objetivo establecido en 15, mientras que 4.2.2 es el nivel 17. ¿Podría ser un problema? Aunque funciona bien en el emulador.

A continuación se muestra el código que utilizo para configurar las texturas en el renderizador en SurcreadoCreado () en caso de que sirva de ayuda.

/**
 * Sets up texturing for the object
 */
private void setupTextures(String[] texFiles) {
    // create new texture ids if object has them
    // number of textures
    mTextureIDs = new int[texFiles.length];

    GLES20.glGenTextures(texFiles.length, mTextureIDs, 0);

    for(int i = 0; i < texFiles.length; i++) {
        GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureIDs[i]);

        // parameters
        GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER,
                GLES20.GL_NEAREST);
        GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
                GLES20.GL_TEXTURE_MAG_FILTER,
                GLES20.GL_LINEAR);

        GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S,
                GLES20.GL_REPEAT);
        GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T,
                GLES20.GL_REPEAT);

        int ID = mContext.getResources().getIdentifier( texFiles[i], "raw", "com.antonymsoft.slidixcube" );
        InputStream is = mContext.getResources().openRawResource(ID);
        Bitmap bitmap;
        try {
            bitmap = BitmapFactory.decodeStream(is);
        } finally {
            try {
                is.close();
            } catch(IOException e) {
                // Ignore.
            }
        }

        // create it 
        GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);
        bitmap.recycle();

    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta