Hi, NPOT textures are supported on some devices, but it's likely the cause of your issue.
However, you could try changing the OpenGL texture initialization code in the initRendering() function:
for (int i = 0; i < textureCount; ++i)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
// NEW lines of code
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, textures[i]->mWidth,
textures[i]->mHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE,
If you still see black textures even with the changes above, then that is a confirmation that your device does not support NPOT textures.
Concerning your second question (using more than one texture):
you probably need to split your 3D model into sub-objects, and render each object separately, using its own texture.