MCODEC - 感恩的心,感谢生命中的每一个人

(本站所有文章都是原创,转载请注明出处)
  首页  :: 联系 :: 订阅 订阅  :: 管理

Android OpenGL JNI 开发注意事项

Posted on 2012-09-14 20:03  mcodec  阅读(1586)  评论(0编辑  收藏  举报

    Android OpenGL JNI 开发注意事项

    先说一下开发环境,我的开发环境是Android 2.2,ndkr7b,Eclipse 3.5版,因为ndkr7b以后jni编译可以集成到Eclipse中,所以就不需要安装一个大大的Cygwin,并且编译也方便了很多。

    但是我在windows中编译ndk自带的例子san-angeles时,总也编译不过,提示找不到gl.h等文件错误,于是上网找帮助。

    网上有帖子说解决方法是将包含该文件的include目录作为新的linked folder加入工程中。具体方法如下:
    1. 右击工程->New->Folder
    2. 对话框中点击Advanced
    3. 选择Link to alternate location (Linked Folder),选择需要的include目录
    4. Finish后刷新工程,问题解决。

   貌似我这样做了之后还是编译不过,依然是找不到gl.h文件错误。

    最后只好拿出终极方案,在Android.mk文件中用LOCAL_C_INCLUDES += c:/ndkr8b/platforms/android-8/arch-arm/usr/include类似语句写死文件路径,这次编译总是过了。

    可是,可是连接又出错了,这次直接拿出终极方案,在Android文件中用LOCAL_LDLIBS += c:/ndkr8b/platforms/android-8/arch-arm/usr/include/libGLESv1_CM.so等语句写死文件路径,总算可以了连接通过了。

    最后到真机上测试,又是错误,加载动态库出了问题,无论是否把libGLESv1_CM.so文件改名重新编译连接,无论是否把libGLESv1_CM.so文件打包进apk,最后都跑不动。

    到这里,貌似是碰到死路了。

    最后抱着试试看的心情,在虚拟机中用ubuntu/linux编译原始san-angeles源码,没想到超级顺利,什么错误也没有,赶紧拷贝到windows导入eclipse生成最后的apk包。在真机上一跑,超级的顺利就通了。

   所以如果要编译OpenGL JNI的代码,最重要的是要在ubuntu中编译。省事省心,一省百省了,切记切记。