Android — проблема Gradle здания

Я пытаюсь скомпилировать свой проект с родными библиотеками и получить следующую ошибку

/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, но я не знаю, как это сделать. Пожалуйста, помогите мне.

3

Решение

в build.gradle файл вашего приложения, вы можете добавить cFlags "-std=c99" в ndk блок расположен в пределах defaultConfig блок, как это:

ndk {
moduleName "libblur"abiFilter "armeabi-v7a"stl "gnustl_static"cFlags "-std=c99"ldLibs "log"}
3

Другие решения

Проблема была в том, что Gradle не использует ваши файлы .mk, но генерирует свои собственные и использует их. Так что полезно редактировать Android.mk и Application.mk. Вы можете собрать свой исходный код вручную или отредактировать раздел ndk в build.gradle.

2

По вопросам рекламы [email protected]