ndk相关
来源:互联网 发布:沈阳i5数控编程实例 编辑:程序博客网 时间:2024/06/04 23:36
ndk相关
ndk编译so环境配置
1.下载安装cygwin,All->Devel其中包括gcc g++ make等
2.把NDK放到cygwin\home目录下
3.进入这个目录cygwin\home\Administrator对bash_profile文件进行配置;
对该文件进行编辑,在文件最后添加如下命令后NDK=/cygdrive/c/cygwin/home/android-ndk-r7
4.源码进行编译 $NDK/ndk-build
5.生成头文件 javah -jni com.android.gl2jni.GL2JNILib
javah 使用(Javah生成JNI头文件)
C:/Users/archfree>javah
用法:javah [选项] <类>
其中 [选项] 包括:
-help 输出此帮助消息并退出
-classpath <路径> 用于装入类的路径
-bootclasspath <路径> 用于装入引导类的路径
-d <目录> 输出目录
-o <文件> 输出文件(只能使用 -d 或 -o 中的一个)
-jni 生成 JNI样式的头文件(默认)
-version 输出版本信息
-verbose 启用详细输出
-force 始终写入输出文件
使用全限定名称指定 <类>(例
首先先要编译我们的android项目,因为javah算是一个反编译工具,需对编译后的文件使用。由于我们编译后的文件是默认放在android项目目录下的bin目录的。于是我们打开cmd
cd C:\cygwin\home\AndroidJrtp\bin\classes
假设工程目录下有bin文件夹,bin存放编译好的class文件;
在bin目录下,
进入项目目录下的bin目录然后输入
javah -jni MAndroidJrtp.Transport.LoadJrtp (MAndroidJrtp.Transport为命名空间 LoadJrtp类名)
在jni目录下生成了:android_serialport_SerialPort.h
注:如生成失败可进入bin\classes目录
ndk-build出错,错误以及解决办法如下
用NDK编译jni目录下的文件了,我的系统是Ubuntu10.04,NDK版本是android-ndk-r7b。
切换到工程的jni目录下执行:ndk-build(ndk-build的路径已经添加到系统路径了,如果没有添加,需要指定完整路径),直接报一下错误:
- Android NDK: There is no Android.mk under /home/helei/workspace/raydroid/jni/jni
- Android NDK: If this is intentional please define APP_BUILD_SCRIPT to point
- Android NDK: to a valid NDK build script.
- /home/helei/android_toolchain/android-ndk-r7b/build/core/add-application.mk:143: *** Android NDK: Aborting... . Stop.
再次执行:ndk-build,得,错误又来了,如下:
- Android NDK: /home/helei/workspace/raydroid/jni/../jni/Android.mk:silkcommon: LOCAL_MODULE_FILENAME must not contain a file extension
- /home/helei/android_toolchain/android-ndk-r7b/build/core/build-static-library.mk:29: *** Android NDK: Aborting . Stop.
解决办法:打开jni目录下的Android.mk文件,在如下代码位置:
- SILK := silk
- LOCAL_MODULE := silkcommon
- LOCAL_SRC_FILES := $(SILK)/src/SKP_Silk_A2NLSF.c \
- $(SILK)/src/SKP_Silk_CNG.c \
- $(SILK)/src/SKP_Silk_HP_variable_cutoff_FIX.c \
之前添加:include $(CLEAR_VARS), 修改之后为:
- include $(CLEAR_VARS)
- SILK := silk
- LOCAL_MODULE := silkcommon
- LOCAL_SRC_FILES := $(SILK)/src/SKP_Silk_A2NLSF.c \
- $(SILK)/src/SKP_Silk_CNG.c \
错误3
Compile++ thumb : speex_jni <= speex_jni.cppH:/workspace/SipUA/jni/../jni/speex_jni.cpp:26:25: fatal error: speex/speex.h: No such file or directorycompilation terminated./cygdrive/h/android/android-ndk-r8/build/core/build-binary.mk:255: recipe for target `/cygdrive/h/workspace/SipUA/obj/local/armeabi/objs/speex_jni/speex_jni.o' failedmake: *** [/cygdrive/h/workspace/SipUA/obj/local/armeabi/objs/speex_jni/speex_jni.o] Error 1
解决办法:把jni文件夹中的speex-1.2rc1/include/speex文件夹拷贝到jni目录下
ndk-build编译成功~~~~
- ndk相关
- ndk相关
- NDK相关
- android NDK开发相关
- NDK + JNI 相关
- ndk相关资源整理
- ndk相关文章
- ndk相关1
- 4.27NDK相关
- NDK相关资料
- NDK开发相关知识
- NDK相关概念与NDK开发步骤
- android 开发 ndk相关问题
- JNI NDK 静态库相关
- Android NDK 文件读取相关
- android开发 NDK相关问题
- android 开发 NDK相关问题
- NDK相关(后补)
- mapreduce eclipse
- Hadoop开发周期(二):编写mapper和reducer程序
- 广度优先搜索与深度优先搜索
- 关于Bitrorrent协议方面的信息,转自维基百科
- 小甲鱼PE详解之IMAGE_NT_HEADERS结构定义即各个属性的作用(PE详解02)
- ndk相关
- poj2227
- 信息安全实验报告模板(定)
- 我所走过的弯路
- 《操作系统》复习题(答案在题后)
- MyEclipse优化技巧
- 操作系统习题集_配套_答桉.doc
- mysql存储过程学习及java调用存储过程
- 数据结构之顺序表(集合的交并差)