Вообще говоря, вам не нужно отправлять libneclic.so для упаковки в JAR. Вы можете использовать его в своем APK как , если сторонним библиотекам, которые ваши коллеги разрабатывают снаружи, не нужна ваша библиотека в качестве зависимости.
На самом деле поддерживаемый способ распространения скомпилированных библиотек Java с нативными компонентами - это не JAR, а файлы AAR. Но это техническая составляющая, которая не важна для этого обсуждения.
Если вы используете libneclic.so непосредственно в вашем APK, то есть у вас есть класс (ы) Java, который использует JNI для вызова функций в вашей библиотеке, вы можете сохранить тот же CMakeList .txt в вашем проекте, или вы можете поместить встроенную библиотеку в папку JniLibs , и Android Studio выберет ее оттуда при упаковке APK.
С другой стороны, если созданная вами библиотека имеет экспортированные функции, которые будут вызываться из какой-либо сторонней библиотеки, убедитесь, что обе используют один и тот же общий STL (к счастью, в последнем выпуске 18 NDK существует только один общий STL доступна реализация, c ++ _ shared .
Настоятельно рекомендуется создавать библиотеки с одинаковой версией NDK, хотя, скорее всего, умеренная разница между этими версиями не приведет к отрицательным результатам. Каждый выпуск NDK вносит существенные улучшения не только в производительность, но и исправляет ошибки, в том числе некоторые проблемы безопасности.
Тем не менее, безопаснее договориться об общем более старом выпуске NDK, чем отслеживать все возможные несоответствия.
Обратите внимание, что по умолчанию CMake использует c ++ _ static STL для создания libneclic.so , и вы должны переопределить это, установив ANDROID_STL .