Интеграция работы с нативным кодом на С/С++ для 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
небритый темный и злой - иногда

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

Fill in your details below or click an icon to log in:

Логотип WordPress.com

You are commenting using your WordPress.com account. Log Out / Изменить )

Фотография Twitter

You are commenting using your Twitter account. Log Out / Изменить )

Фотография Facebook

You are commenting using your Facebook account. Log Out / Изменить )

Connecting to %s

Follow

Get every new post delivered to your Inbox.