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中编译。省事省心,一省百省了,切记切记。

相关文章:

  • 2021-09-28
  • 2022-12-23
  • 2021-05-09
  • 2021-09-18
  • 2021-07-30
  • 2021-11-19
  • 2022-01-29
  • 2021-07-06
猜你喜欢
  • 2021-07-12
  • 2021-05-26
  • 2021-10-29
相关资源
相似解决方案