This still means that OpenGL doesn't return a texture id for this upload. I guess you are still using your custom SurfaceView? In that case, just scrap it. It doesn't seem to be working correctly. Because it's this line that fails:
gl10.glGenTextures(1, buf);
...and that actually can't happen unless the gl context (gl10 in this case) is invalid. It's up to your implementation to provide a valid context, the engine can do nothing about this.