Я пытаюсь скомпилировать свой проект с родными библиотеками и получить следующую ошибку
/Users/eugene/KREF14001/app/src/main/jni/libC/PulseFilter.c: In function 'shapeMonoGame':
/Users/eugene/KREF14001/app/src/main/jni/libC/PulseFilter.c:696:5: error: 'for' loop initial declarations are only allowed in C99 mode
/Users/eugene/KREF14001/app/src/main/jni/libC/PulseFilter.c:696:5: note: use option -std=c99 or -std=gnu99 to compile your code
Из этого отчета я обнаружил, что для компиляции своего кода я должен использовать опцию -std = c99 или -std = gnu99, но я не знаю, как это сделать. Пожалуйста, помогите мне.
в build.gradle
файл вашего приложения, вы можете добавить cFlags "-std=c99"
в ndk
блок расположен в пределах defaultConfig
блок, как это:
ndk {
moduleName "libblur"abiFilter "armeabi-v7a"stl "gnustl_static"cFlags "-std=c99"ldLibs "log"}
Проблема была в том, что Gradle не использует ваши файлы .mk, но генерирует свои собственные и использует их. Так что полезно редактировать Android.mk и Application.mk. Вы можете собрать свой исходный код вручную или отредактировать раздел ndk в build.gradle.