E/AndroidRuntime(1072): java.lang.IllegalArgumentException: Must use a native order direct Buffer
这是错误信息,问题是当我单独运行这个activity时没问题,但是当我把它合并到另一个工程中,并用intent触发时,就会报错。看网上的解答,改成1.5版本的就可以解决该问题,但是装到android 3.0上时,会显示放大。求解决方法。

解决方案 »

  1.   

    Must use a native order direct Buffer
    你是用的FloatBuffer.wrap(float[])方法获得的Buffer的吧?换成下面这种方法应该就OK了,可以在1.5以后版本上用了~
    private FloatBuffer vertexBuffer;   // our vertexBuffer // Our vertices.
    private float vertices[] = {
    -1.0f, 1.0f, 0.0f, // 0, Top Left
    -1.0f, -1.0f, 0.0f, // 1, Bottom Left
    1.0f, -1.0f, 0.0f, // 2, Bottom Right
    1.0f, 1.0f, 0.0f, // 3, Top Right
    };// float数组转换成顶点vertexBuffer
    ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4);
    vbb.order(ByteOrder.nativeOrder());
    vertexBuffer = vbb.asFloatBuffer();
    vertexBuffer.put(vertices);
    vertexBuffer.position(0);