#android #android-studio #andengine #linker-errors
#Android #android-studio #andengine #компоновщик-ошибки
Вопрос:
Я взял исходный код AndEngine из их репозитория git, загрузил свежую AndroidStudio, sdk и ndk, импортировал его и попытался создать простую новую пустую GameActivity, расширяющую базовую GameActivity.
Но я не смог ее запустить, потому что получаю следующие ошибки:
/home/uhu/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/uhu/AndroidStudioProjects/aaa/andEngine/build/intermediates/ndk/release/obj/local/armeabi-v7a/objs/andengine_shared//home/uhu/AndroidStudioProjects/aaa/andEngine/src/main/jni/src/GLES20Fix.o: in function Java_org_andengine_opengl_GLES20Fix_glVertexAttribPointer:/home/uhu/AndroidStudioProjects/aaa/andEngine/src/main/jni/src/GLES20Fix.c:9: error: undefined reference to 'glVertexAttribPointer'
/home/uhu/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/uhu/AndroidStudioProjects/aaa/andEngine/build/intermediates/ndk/release/obj/local/armeabi-v7a/objs/andengine_shared//home/uhu/AndroidStudioProjects/aaa/andEngine/src/main/jni/src/GLES20Fix.o: in function Java_org_andengine_opengl_GLES20Fix_glDrawElements:/home/uhu/AndroidStudioProjects/aaa/andEngine/src/main/jni/src/GLES20Fix.c:13: error: undefined reference to 'glDrawElements'
Error:Execution failed for task ':andEngine:compileReleaseNdk'.
com.android.ide.common.internal.Исключение LoggedErrorException: не удалось запустить команду:
/home/uhu/android-ndk-r9d/ndk-build NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/uhu/AndroidStudioProjects/aaa/andEngine/build/intermediates/ndk/release/Android. mk APP_PLATFORM= android-15 NDK_OUT=/home/uhu/AndroidStudioProjects/aaa/AndEngine/build/промежуточные /ndk/ release/obj NDK_LIBS_OUT=/home/uhu/AndroidStudioProjects/aaa / AndEngine/build/ промежуточные / ndk /release /библиотека APP_ABI= все
Код ошибки:
2
Вывод:
/home/uhu/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld : /home/uhu/AndroidStudioProjects/aaa/andEngine/build/intermediates/ndk/release/obj/local/armeabi-v7a/objs/andengine_shared//home/uhu/AndroidStudioProjects/aaa/andEngine/src/main/jni/src/GLES20Fix.o: в функции Java_org_andengine_opengl_GLES20Fix_glVertexAttribPointer:/home/uhu/AndroidStudioProjects/aaa/andEngine/src/main/jni/src/GLES20Fix.c:9 : ошибка: неопределенная ссылка на ‘glVertexAttribPointer’
/home/uhu/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld : /home/uhu/AndroidStudioProjects/aaa/andEngine/build/intermediates/ndk/release/obj/local/armeabi-v7a/objs/andengine_shared//home/uhu/AndroidStudioProjects/aaa/andEngine/src/main/jni/src/GLES20Fix.o: в функции Java_org_andengine_opengl_GLES20Fix_glDrawElements:/home/uhu/AndroidStudioProjects/aaa/andEngine/src/main/jni/src/GLES20Fix.c:13 : ошибка: неопределенная ссылка на ‘glDrawElements’
collect2: ld вернул статус выхода 1
создайте: * [/home/uhu/AndroidStudioProjects/aaa/andEngine/build/intermediates/ndk/release/obj/local/armeabi-v7a/libandengine_shared.so ] Ошибка 1
Кто-нибудь знает, как это исправить? Или, если я просто использую неправильные инструменты, что вы можете порекомендовать?
Комментарии:
1. Я также хотел бы знать ответ. ndk-build выполняется, хотя только после указания APP_PLATFORM:= android-xx в Application.mk . Но не повезло со сборкой gradlew.
Ответ №1:
Мне удалось скомпилировать мой проект. Мне кажется, проблема в том, что AS и ndk пока плохо работают вместе. В любом случае проверьте мой блог о настройке проекта:-
Комментарии:
1. Что означает последний шаг, пожалуйста, не могли бы вы уточнить. Спасибо
2. Я пытался следовать этому, но в нем не было достаточно подробностей о том, как правильно импортировать различные проекты в И. Студия. Я предполагаю, что сообщение предполагает, что кто-то знает, как правильно настроить зависимости проектов там ..? Учитывая, что эта настройка нетривиальна, было бы неплохо иметь все детали для кого-то вроде меня, кто выполняет такого рода настройку впервые. Спасибо, что хоть что-то начали
Ответ №2:
Кажется, проще использовать официальную версию intellij вместо android studio. И поскольку оба они очень похожи в использовании, это не имеет особого значения. Вместе с некоторыми подсказками по сборке ndk из ответа lakshman5876, это, наконец, сработало очень хорошо. Спасибо http://www.jetbrains.com/idea /