С примерното приложение ImageTargets на Vuforia се опитах да използвам OpenGL ES 1.1, като зададох USE_OPENGL_ES_1_1 на true в jni/Android.mk и разкоментирах и промених съответния ред в AndroidManifest.xml (). След преобразуване на проекта, така че да има перспектива на C++ и свързване на ndk-build и правилните директории за включване, можех успешно да стартирам приложението на моето устройство с Android.
Проблемът обаче е, че след като отворя jni/ImageTargets.cpp, получавам няколко грешки от Eclipse, всички от места, където би се изпълнил кодът на OpenGL ES 2.0, като първата е:
Описание Ресурс Път Местоположение Тип Символ „vertexHandle“ не може да бъде разрешен ImageTargets.cpp /ImageTargets/jni ред 402 Семантична грешка
Разбира се, 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, която трябва да реши това?