Android 如何以编程方式检测错误,如IllegalArgumentException:没有与configSpec匹配的配置?

Android 如何以编程方式检测错误,如IllegalArgumentException:没有与configSpec匹配的配置?,android,error-handling,opengl-es-2.0,Android,Error Handling,Opengl Es 2.0,我故意在模拟器上运行OpenGL ES 2.0应用程序。虽然我知道这应该失败,但它确实失败了,我想学习如何通过编程捕捉错误 我正在使用HelloOpenGLES20教程代码,所以我不认为我需要在这里重新发布它。我使用的是Android 4.0.3版本15的代码库 换句话说,我如何使我的应用程序更加健壮,健壮到足以捕捉这个错误?e、 例如,假设我疯了,想同时提供OpenGL 2.0和1.0支持,如果我不能运行2.0,就退回到1.0代码——请不要告诉我检查API版本,因为这不会解决如何检测这个特定错

我故意在模拟器上运行OpenGL ES 2.0应用程序。虽然我知道这应该失败,但它确实失败了,我想学习如何通过编程捕捉错误

我正在使用HelloOpenGLES20教程代码,所以我不认为我需要在这里重新发布它。我使用的是Android 4.0.3版本15的代码库

换句话说,我如何使我的应用程序更加健壮,健壮到足以捕捉这个错误?e、 例如,假设我疯了,想同时提供OpenGL 2.0和1.0支持,如果我不能运行2.0,就退回到1.0代码——请不要告诉我检查API版本,因为这不会解决如何检测这个特定错误的问题


谢谢大家

总的来说,我建议不要检测错误。相反,最好的做法是测试您想要使用的特定功能,以防止出现错误

在这种特殊情况下,请检查系统是否支持OpenGL ES 2.0:

ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);    ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();    
boolean supportsEs2 = configurationInfo.reqGlEsVersion >= 0x20000;

我理解并欣赏这是更好的方式。然而,我对Java比较陌生,对Android编程也非常陌生,所以当我遇到无法检测到的错误时,我感兴趣的是学习a是什么使它无法检测,b是如何捕捉错误。也许一些额外的细节可以帮助解释我的查询。考虑到无数可能会破坏配置并产生相同的错误,我如何检测和调试这样的配置问题?GL 2.0错误在Thread.run末尾显示为异常,如果这是正确的方法来识别它,并且没有相关或有用的堆栈详细信息。