NDK build 的lib so包不能被eclipse找到并且打包进 apk

Simon253 发布于 2012/12/21 10:02
阅读 3K+
收藏 0


    我的环境是ubuntu 12.04 X86  

    先用 ndk-build ,然后lib 也全部生成在了 libs/armeabi/ 下,但是每次eclipse总是找不到,也不能把相应 .so文件包进 apk中,运行的时候当然system 不能load。

    一下是具体信息:

ndk-build :

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 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
Compile++ thumb  : swift <= binmap.cpp
Compile++ thumb  : swift <= channel.cpp
Compile++ thumb  : swift <= transfer.cpp
Compile++ thumb  : swift <= httpgw.cpp
Compile++ thumb  : swift <= statsgw.cpp
Compile++ thumb  : swift <= cmdgw.cpp
Compile++ thumb  : swift <= avgspeed.cpp
Compile++ thumb  : swift <= avail.cpp
Compile++ thumb  : swift <= storage.cpp
Compile++ thumb  : swift <= api.cpp
Compile++ thumb  : swift <= live.cpp
Compile++ thumb  : swift <= content.cpp
Compile++ thumb  : swift <= zerostate.cpp
Compile++ thumb  : swift <= zerohashtree.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$ ls libs/armeabi/
libevent.so


但是在用eclipse build的 apk文件中找不到。

还有一个问题是,当我试图手动aapt

simon@ubuntu :~/projects/apps/latest/tgs-android/bin$ aapt a IntroActivity.apk  ../libs/armeabi/libevent.so
 '../libs/armeabi/libevent.so'...


加载成功,但是我用 adb install

adb  install IntroActivity.apk 
2817 KB/s (1089288 bytes in 0.377s)
pkg: /data/local/tmp/IntroActivity.apk
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]


却出了问题。 

simon@ubuntu :~/projects/apps/latest/tgs-android/bin$ jarsigner -verify IntroActivity.apk 
jar verified.


Warning: 
This jar contains unsigned entries which have not been integrity-checked. 


Re-run with the -verbose and -certs options for more details.


也是说 verified。 因为之前用eclipse生成的没有带 event lib 的apk 文件,里面是有debug key的。不知道现在为什么不行了。


THANKS IN ADVANCE!

加载中
0
Simon253
Simon253
Fixed. Eclipse error. 手动生成libXXso文件在lib 目录下后,disable eclipse的自动ndk build就可以搞定。
0
李昱
李昱

引用来自“Simon253”的答案

Fixed. Eclipse error. 手动生成libXXso文件在lib 目录下后,disable eclipse的自动ndk build就可以搞定。

怎么disable?我找不到啊。。

操蛋的,项目本身有jni,但是又引用了一个第三方库,每次打包,第三方库就不见了

Simon253
Simon253
选择项目,右键,propert,然后选择builder
0
南京大海

我遇到jar包不能被打进APK,其解决方法如下:

项目/属性/java Build Path/Order and export 中,选中相应的jar包即可

返回顶部
顶部