当前位置: 代码迷 >> Android >> android 3d 有关问题汇总1
  详细解决方案

android 3d 有关问题汇总1

热度:364   发布时间:2016-05-01 17:14:02.0
android 3d 问题汇总1
第一例子就遇到问题了!!

问题描述:

直接生成intBuffer:
int one = 0x10000;// 三角形的3个顶点	private IntBuffer triggerBuffer = IntBuffer.wrap(new int[]	{ 0, one, 0, // 上顶点			-one, -one, 0, // 左下顶点			one, -one, 0, }); // 右下顶点


结果就报错:
java.lang.IllegalArgumentException: Must use a native order direct Buffer


解决方案:
1、直接弄一个nativeorder
类似于这样的:
/正方体顶点缓存
  ByteBuffer qbb = ByteBuffer.allocateDirect(quater.length * 4);           qbb.order(ByteOrder.nativeOrder());           quaterBuffer = qbb.asIntBuffer();           quaterBuffer.put(quater);           quaterBuffer.position(0);                             //正方体颜色缓存            ByteBuffer quacbb = ByteBuffer.allocateDirect(quaColors.length * 4);            quacbb.order(ByteOrder.nativeOrder());            quaColorBuffer = quacbb.asIntBuffer();            quaColorBuffer.put(quaColors);            quaColorBuffer.position(0);

这样是可以的。

2、问题出现在sdk版本上

 <uses-sdk android:minSdkVersion="3" /> 
   
改成3就ok了。       
  相关解决方案