使用Vuforia的ImageTargets示例应用程序,我尝试使用OpenGL ES 1.1,在jni / Android.mk中将USE_OPENGL_ES_1_1设置为true,并取消注释并更改AndroidManifest.xml()中的相应行。在转换项目以使其具有C ++透视图并关联ndk-build和正确的include目录之后,我可以在我的Android设备上成功运行该应用程序。
然而,问题在于,一旦我打开jni / ImageTargets.cpp,我就会从Eclipse中获得几个错误,所有错误都来自执行OpenGL ES 2.0代码的地方,第一个是:
描述资源路径位置类型符号'vertexHandle'可以 无法解析ImageTargets.cpp / ImageTargets / jni line 402 Semantic 错误
果然,vertexHandle定义在ImageTargets.cpp的顶部,在“#ifdef USE_OPENGL_ES_2_0”块内。因为没有定义USE_OPENGL_ES_2_0(根据Android.mk),代码应该能够成功编译,果然,ndk-build不会报告任何问题。因此,似乎只有Eclipse报告问题,当我运行项目时,Eclipse说,“您的项目包含错误,请在运行应用程序之前修复它们。”因此,我不能再运行我的应用程序了。从某种意义上说,在我打开ImageTargets.cpp并且Eclipse“发现”错误之前,这种情况从未发生过,这有点奇怪。
到目前为止我发现的最佳解决方法是删除或注释掉那些行(这不应该导致问题因为USE_OPENGL_ES_2_0不应该定义)...有没有更好的方法来处理这个问题?我是否错过了Eclipse中应该解决此问题的设置?
答案 0 :(得分:0)
我找到了一个解决方案:转到项目属性 - > C / C ++ Build - >发现选项 - >选中“自动发现路径和符号”