支持OpenGL ES 2.0的Android SDK模拟器?

时间:2012-04-26 06:35:58

标签: android android-emulator

最近在线阅读一些教程时,我看到这个视频表明Android SDK现在支持OpenGL ES 2.0:

http://www.youtube.com/watch?feature=player_embedded&v=T--vFtyZvc4

热情地,我在我的模拟器中添加了'GPU Emulation'选项,并试图运行一个基本的HelloOpenGLES20应用程序,但是我遇到了这个错误,并且一些空指针异常没有意义:

Sorry!
The application
LessonOneActivity (process
lesson.One has stopped
unexpectedly. Please try again.

Force close

应用程序在显示一些旋转三角形的真实Android手机上正常运行,我想知道是否有人遇到了我正面临的问题,我已经做了相当多的谷歌搜索但是找不到解决方案=(

这是日志:

04-26 06:42:08.782: D/AndroidRuntime(577): Shutting down VM
04-26 06:42:08.813: W/dalvikvm(577): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-26 06:42:08.842: E/AndroidRuntime(577): FATAL EXCEPTION: main
04-26 06:42:08.842: E/AndroidRuntime(577): java.lang.RuntimeException: Unable to resume activity {lesson.One/com.learnopengles.android.lesson1.LessonOneActivity}: java.lang.NullPointerException
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2120)
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2135)
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1668)
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.os.Looper.loop(Looper.java:130)
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.app.ActivityThread.main(ActivityThread.java:3683)
04-26 06:42:08.842: E/AndroidRuntime(577):  at java.lang.reflect.Method.invokeNative(Native Method)
04-26 06:42:08.842: E/AndroidRuntime(577):  at java.lang.reflect.Method.invoke(Method.java:507)
04-26 06:42:08.842: E/AndroidRuntime(577):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-26 06:42:08.842: E/AndroidRuntime(577):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-26 06:42:08.842: E/AndroidRuntime(577):  at dalvik.system.NativeStart.main(Native Method)
04-26 06:42:08.842: E/AndroidRuntime(577): Caused by: java.lang.NullPointerException
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.opengl.GLSurfaceView.onResume(GLSurfaceView.java:512)
04-26 06:42:08.842: E/AndroidRuntime(577):  at com.learnopengles.android.lesson1.LessonOneActivity.onResume(LessonOneActivity.java:46)
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.app.Activity.performResume(Activity.java:3832)
04-26 06:42:08.842: E/AndroidRuntime(577):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2110)
04-26 06:42:08.842: E/AndroidRuntime(577):  ... 12 more
04-26 06:42:13.292: I/Process(577): Sending signal. PID: 577 SIG: 9

1 个答案:

答案 0 :(得分:0)

我已经运行了代码,而异常是由于仿真器仍然不支持GLES20。如果您打印更多信息,您会看到supportsEs2为假。

即使GPU Emulation设置为true,仿真器也不支持GLES20,这取决于系统。如果您在Linux上进行开发,则可能与显卡有关。 Here是一个类似的问题,有一些可能的解决方案。至少你可以尝试一下。

编辑:

根据the official site,您需要将模拟器目标设置为API 15(rev03)或更高版本。