我现在要实现android jni调用,但是我不知道怎么样去吧我的c语言写的头文件 和 实现类文件,
编译成适用android的SO文件
我在LINUX下编译出的SO文件,放在system/lib下 报错找不到该SO文件,
所以求教高手指点一下,如何生成android so文件
编译成适用android的SO文件
我在LINUX下编译出的SO文件,放在system/lib下 报错找不到该SO文件,
所以求教高手指点一下,如何生成android so文件
解决方案 »
- GreenDroid使用
- 为什么我的按钮需要点击两次才会相应onclick方法?
- android真的好用
- 求助,模拟器上可以全屏,真机上不行!
- android使用google ADK开发无法识别设备的问题
- 访问TOMCAT上一个文件老是报错,大家伙看看。。。
- 类继承了View, 在canvas上drawtext,能否使用外部字体?
- svn下载后android4.2在ubuntu编译错误,dragon image.cfg sys_partition.fex [Failed]
- Android中横竖屏切换加载不同布局导致fragment数据丢失的问题
- android自动打包问题
- Android 消息机制
- Android创建文本文件的方法问题
http://mintelong.javaeye.com/blog/458391
简单的说就是几部,
1.搭环境
2.编写jni的java接口
3.实现jni(.c和.h的实现)
4.编译jni,就是编译.c生成so
5.java层调用
2. include $(CLEAR_VARS)
3. LOCAL_SRC_FILES:= \
4. com_ura_test_JNITest.c
5. LOCAL_C_INCLUDES := \
6. $(JNI_H_INCLUDE)
7. LOCAL_SHARED_LIBRARIES := libutils
8. LOCAL_PRELINK_MODULE := false
9. LOCAL_MODULE := libJNITest
10. include $(BUILD_SHARED_LIBRARY) 复制代码 (7)编译生成动态库 新建文件夹
~/mydroid/external/libJNITest
把上面编写好的头文件,c/c++源文件,make文件拷贝进上面目录中 * 需要注意的是把PRELINK_MOUDULE设置成false 否则需要重新做成img文件再烧入。 在ubuntu中执行 1. cd
2. cd mydroid/build/
3. envsetup.sh
4. cd ~/mydroid
5. cd external/libJNITest/
6. mm
复制代码 编译成功的后会在下面目录中生成libJNITest.so文件
~mydroid/out/target/product/generic/system/lib/
红色部分 我根本不知道什么意思
至于红色部分是先设置环境变量
. buile/envsetup.sh
lunchmm就是进行模块编译
就是根据你写的那个Android.mk来编的
编译的话,返回hello-jni的上层目录
make APP=hello-jni
这样就能编译出so了,在hello-jni的libs里
试试把你自己的那个.so文件加进去,看行不
我看的是这个网页 但是看到生成SO文件那块 就不明白了
他也是在LINUX环境下生成的SO??