android NDK 生成so 文件流程-ecplice

1:生成jni目录

首先说一句网上,大部分博客这么写的:打开控制台,进入项目目录,运行
javah -classpath bin/classes -d jni com.example.hellojni.MainAcitivity

我只想问一句,这些代码您亲自运行成功了吗?您这么写出来责任心何在?

这么写你会遇到这个错误。

实际上可以这么写:

1: javah -classpath src -d jni com.itg.jni.ImageBlur

或写入android.jar的路径直接执行

2:javah -classpath C:\project\Android\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-22\android.jar;bin/classes -d jni com.itg.jni.ImageBlur

然后你会在项目中得到jni文件夹及.h的文件

然后编写C文件。

3:右键jni文件 添加Android.mk文件

写入配置

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE   := JNI_ImageBlur
LOCAL_SRC_FILES := com_itg_jni_ImageBlur.cpp
LOCAL_LDLIBS    := -ljnigraphics -llog
include $(BUILD_SHARED_LIBRARY)
LOCAL_LDLIBS    := -ljnigraphics -llog 这一句如果没用到BitMap不要添加。我的需求是,操作图片 如果没有这句汇报

在编译jni的cpp文件时出现:

jni/NDKtest.cpp:21: error: undefined reference to ‘AndroidBitmap_getInfo‘

jni/NDKtest.cpp:22: error: undefined reference to ‘__android_log_print‘

jni/NDKtest.cpp:26: error: undefined reference to ‘__android_log_print‘

jni/NDKtest.cpp:29: error: undefined reference to ‘AndroidBitmap_lockPixels‘

jni/NDKtest.cpp:30: error: undefined reference to ‘__android_log_print‘

jni/NDKtest.cpp:39: error: undefined reference to ‘AndroidBitmap_unlockPixels‘

collect2.exe: error: ld returned 1 exit status

make.exe: *** [obj/local/armeabi/libNDKtest.so] Error 1

 

2 下载NDK(Native Development Kit)

2:选中要生成so 文件的项目选择Property-->Builders-->New

设置Location,添加 ndk-build.cmd

设置working Directory 选择项目中jni目录

设置build Options

勾选如图所示

设置Specify Resources,直接选择jni文件夹即可。完毕,保存,ecplice会自动在armeabi文件夹下生成so文件

时间: 2024-11-11 14:03:35

android NDK 生成so 文件流程-ecplice的相关文章

Android无法生成R文件的终极解决办法

今天从svn中检出项目的时候,项目里的文件一直报错,R文件也没办法生成,于是开始盘查: R文件如果在clean项目(Project->Clean)和 Fix Project Properties(如下图): 都无法解决的的时候,那唯一的原因就是资源文件调用的错误,比如资源文件命名不规范,多余的资源引用等,有时候很难排查,这就要求心细了. 我今天碰到的还算比较简单,新建项目的时候自带v_7的jar包,然后所有的activity都集成了ActionBarActivity了,但是我将需要的另外一个项目

android 中生成xml文件

在Android中生成xml文件真的很简单,下面提供2中方法,一种是通过String写入到文件,另外一种是通过XML 的 XmlSerializer. 以后遇到Android写xml内容就不会困惑了 1.通过string写入文件 String name=mEtName.getText().toString(); String age=mEtAge.getText().toString(); String Id=mEtID.getText().toString(); File file=new F

android NDK的下载-文件太大

需要翻墙,建议使用VPN,下载前准备点时间配置网络环境.我的百度网盘好像有~~不过忘记地址了,改天共享,或者私聊我. 2015.4 Android 5.1 Android Studio https://dl.google.com/dl/android/studio/install/1.1.0/android-studio-bundle-135.1740770-windows.exe https://dl.google.com/dl/android/studio/install/1.1.0/and

Android中生成xml文件

xml可以用来备份文件数据 Android中xml的读写 通常把数据封装到对象中,然后通过对象俩操作数据.包名不能使用Android或Java的关键字. 当一个应用被删除时,该应用在内部存储空间内的所有数据都会被删除,而应用在外部存储空间的数据不会被删除.备份文件一般都放在外部存储空间中. 对于xml文件的校验,可以把xml文件放到浏览器中去解析,如果能够正常解析说明xml文件是正确的. 短信备份案例: activity_main.xml <RelativeLayout xmlns:androi

[Android] keytools生成jsk文件以及获取sha1码

生成jks文件 进入要生的jks文件的路径,打开windows的命令提示符(CMD) keytool -genkey -alias dct -keyalg RSA -keysize 1024 -keystore test2.jks -validity 365 此签名文件的信息可以在Andorid应用程序中的build.gradle中进行配置 获取jks文件中存储的指纹信息 进入jsk文件存储的路径,然后输入: keytool -list -v -keystore test2.jks 输入密钥库的

Android NDK 生成多重cpu类型的so包

1.请参考我的博客 http://blog.csdn.net/changcsw/article/details/41491257 安装上 cygwin 环境 2.请参考我的博客 http://write.blog.csdn.net/postedit/8983907 完成基本的ndk 简单的生成仅支持 armeabi 的 so包 3.生成 支持多重cpu类型的 so包 在ndk 目录对应的目录下android-ndk-r9d\samples\hello-jni\jni 找到 Application

Mac 下解压Android NDK 的 .bin文件

刚下载下来NDK文件试着解压,怎么也解压不出来,在网上搜了一下很多方法都很坑,还是看看d.android.com吧,结果官网直接有教程: ndk$为下载的ndk所在的目录 ndk$ chmod a+x android-ndk-r10c-darwin-x86_64.bin ndk$ ./android-ndk-r10c-darwin-x86_64.bin

Android NDK编译本地文件以及引用第三方so文件

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_LDLIBS :=-llogLOCAL_MODULE := DeviceAPILOCAL_SRC_FILES := DeviceAPI.c \ include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS)LOCAL_MODULE := libbarcodereaderLOCAL_SRC_FILES := libbarcodereader.so

Android中生成库文件与移除以及导入jar包重复问题

1.项目右键-->properties-->android-->Is library-->Apply 2.在其他项目中就能通过add library引用到该库文件 其他项目导入该库文件后可看到引用的对应jar包: 引用库文件的好处在于可以对源代码进行修改 2.移除,注意不能从硬盘删除 即上面的选项不勾选 3.jar包重复问题 如果项目里有android-surport-v4  导入的jar包也有,则任意删除一份 否则报如下错误,通过log可看出是通过sha-1算法来验证两个jar包