首先,我正在运行一个托管在 win8 上的 ubuntu 12.04 x86 虚拟机。我正在将 ac/c++ 库编译到我的 android 应用程序中。
在目录中使用 ndk-build 后,似乎库和模块构建成功。而且我还可以看到 libs/armeabi/ 下的 .so 文件。但是,当我将我的项目导入 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
androidManifest.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.
警告:此 jar 包含未经完整性检查的未签名条目。
使用 -verbose 和 -certs 选项重新运行以获取更多详细信息。
任何帮助表示赞赏!提前致谢!