android下使用ndk开发opengl

本文档目的是记录下从头搭建ndk开发opengl的全过程,以便后来者避免繁琐的准备过程。

以下过程以windows操作系统为例,所需程序默认安排在c盘

1、下载android sdk,安装在 C:\android-sdk-windows

2、下载android ndk,安装在 C:\android-ndk-r8b

3、下载Cygwin,需要1.7或更高版本。因为是在windows下开发,所以需要交叉编译,在其它平台下没有这种麻烦事。安装在C:\cygwin,安装完成后把C:\android-ndk-r8b移到C:\cygwin目录下

安装时,确保 gcc、make、awk三个程序是安装状态,gcc和make默认是不安装的。

另注:ndk r8及更高版本,支持windows下编译。

4、下载eclipse。

安装eclipse下的android sdk插件 adt。

安装eclipse下的c/c++插件cdt。

5、C:\cygwin\workspace(这个目录自己建立)。然后使用eclipse中的import功能,将ndk下的hello-gl2导入工程。

6、在ecliplse中配置ndk自动编译环境

直接参考网上的文章吧:http://blog.csdn.net/gengshenghong/article/details/6981590

以上完成后,编译发布报以下错误:

09-27 07:07:30.154: E/AndroidRuntime(658): FATAL EXCEPTION: GLThread 78
09-27 07:07:30.154: E/AndroidRuntime(658): java.lang.IllegalArgumentException: No configs match configSpec
09-27 07:07:30.154: E/AndroidRuntime(658):     at com.android.gl2jni.GL2JNIView$ConfigChooser.chooseConfig(GL2JNIView.java:168)
09-27 07:07:30.154: E/AndroidRuntime(658):     at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1024)
09-27 07:07:30.154: E/AndroidRuntime(658):     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1401)
09-27 07:07:30.154: E/AndroidRuntime(658):     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
09-27 07:07:30.165: D/gralloc_goldfish(658): Emulator without GPU emulation detected.

NDK里的GL2JNIView.java的init函数里(大概102行)

//        setEGLConfigChooser( translucent ?

//                             new ConfigChooser(8, 8, 8, 8, depth, stencil) :

//                             new ConfigChooser(5, 6, 5, 0, depth, stencil) );

setEGLConfigChooser(5, 6, 5, 0, 0, 0); 就可以跑起来了。

但是继续报以下错误:

09-27 07:11:07.694: E/libEGL(707): called unimplemented OpenGL ES API

7、在preference->c/c++->Build->Environment中添加

INCLUDE 指向ndk中的include目录

好像不起作用,最后在项目下新建了一个文件夹,然后引用到include目录来解决掉的。

8、需要把工程转为c/c++工程。

9、自己准备好的一个ndk opengles 1.0基础程序。

AndroidWow

发表评论?

1 条评论。

  1. cocos2dx2.0版本在android下的安装配置问题 - 移动端开发 - 开发者 - pingback on 2013 年 08 月 10 日 在 上午 10:56

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Trackbacks and Pingbacks: