Интеграция работы с нативным кодом на С/С++ для android в Eclipce (на примере, под Ubuntu). — часть 2

Компиляция проекта.

Часть 1.

1)Заходим в свойства проекта и выбираем пункт С/С++ Build. Убираем галочку Use default build comand и вписываем команду для сборки С/С++ части — «ndk-build»

Переходим на закладку Behavior и выставляем следующие галочки:

Убираем галочку clean — ndk чистит проект автоматически и не поддерживает данную комманду, ndk-build также не поддерживает команду all, поэтому ее стираем.
Нажимаете кнопку Apply и вам выдает ошибку в коде С++, потому что Eclipce не видит необходимых библиотек.

2) Добавляем пути. В этом же окне в категории C/C++ General->Paths and Symbols в закладке Includes в категории С и С++ указываем пути к библиотекам необходимой таргет версии ${ndk_dir}/platforms/android-${target_version}/arch-arm/usr/include. Где ${ndk_dir} директория ndk, а ${target_version} — цифра таргет версии.
А в закладке С++ добавляем путь к заголовочным stdlib файлам {ndk_dir}/sources/cxx-stl/gnu-libstdc++/include

3)Нажимаем Apply и соглашаемся собрать проект, в консоли видим следующее:

**** Build of configuration Default for project NativeExample ****

ndk-build
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
Install : libnative_lab.so => libs/armeabi/libnative_lab.so

Что сигнализирует нам что нативная библиотека скомпилировалась и собралась удачно. В проекте при этом появилась папка obj в которую поместили нашу скомпилированную библиотеку libnative_lab.so

4)Помещаем вызов нашей библиотеки например в метод onCreate вашей активити:

String string="blablabla";
NativeLib lib = new NativeLib();
String result = lib.function(string.getBytes());
Log.i("NativeExample", result);

И нажимаем кнопку Run. И опять продолжение следует… 😉

Реклама

Детали luchaninov
небритый темный и злой - иногда

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: