Во-первых, я использую виртуальную машину Ubuntu 12.04 x86, размещенную на Win8. Я компилирую библиотеку c/c++ в свое приложение для Android.
После того, как я использую ndk-build в каталоге, кажется, что библиотека и модуль были успешно собраны. И я также вижу файл .so в libs/armeabi/ . Однако, когда я импортирую свой проект в eclipse, он всегда выдает ошибку, в которой говорится, что в этом случае не удается найти событие с именем lib. И я разархивировал файл apk и обнаружил, что lib/armeabi/.so не упакован в файл apk.
Ниже подробная информация, надеюсь, кто-нибудь может мне помочь.
Сборка NDK:
simon@ubuntu:~/projects/apps/latest/tgs-android/jni$ ndk-build
/home/simon/Android/android-ndk-r8c/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 11 a in /home/simon/projects/apps/latest/tgs-android
ndroidManifest.xml
Compile++ thumb : swift <= NativeLib.cpp
Compile++ thumb : swift <= sha1.cpp
Compile++ thumb : swift <= compat.cpp
Compile++ thumb : swift <= sendrecv.cpp
Compile++ thumb : swift <= send_control.cpp
Compile++ thumb : swift <= hashtree.cpp
Compile++ thumb : swift <= bin.cpp
Prebuilt : libevent.a <= jni/libevent2/lib/
Prebuilt : libstlport_static.a <= <NDK>/sources/cxx-stl/stlport/libs/armeabi/
SharedLibrary : libevent.so
Install : libevent.so => libs/armeabi/libevent.so
Можно найти
simon@ubuntu:~/projects/apps/latest/tgs-android/jni$ ls ../libs/armeabi/
libevent.so
Еще один вопрос, который у меня есть, заключается в том, что когда я пытался использовать aapt a для добавления .so lib в файл .apk, мне это удалось, однако, когда я использую adb install для его установки на свое устройство. Он подсказывает:
simon@ubuntu:~/projects/apps/latest/tgs-android/bin$ adb install IntroActivity.apk
2871 KB/s (1089288 bytes in 0.370s)
pkg: /data/local/tmp/IntroActivity.apk
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
simon@ubuntu:~/projects/apps/latest/tgs-android/bin$
Но я думаю, что файл apk уже был подписан eclipse в режиме отладки.
simon@ubuntu:~/projects/apps/latest/tgs-android/bin$ jarsigner -verify IntroActivity.apk
jar verified.
Предупреждение. Эта банка содержит неподписанные записи, целостность которых не проверялась.
Повторите запуск с параметрами -verbose и -certs для получения дополнительных сведений.
Любая помощь приветствуется! ЗАРАНЕЕ СПАСИБО!