您的位置:首页 > 移动开发 > Android开发

android NDK 生成so 文件流程-ecplice

2015-09-17 12:18 309 查看
1:生成jni目录

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

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

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



实际上可以这么写:

1:javah-classpathsrc-djnicom.itg.jni.ImageBlur

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

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

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

然后编写C文件。

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

写入配置

LOCAL_PATH:=$(callmy-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:undefinedreferenceto'AndroidBitmap_getInfo'
jni/NDKtest.cpp:22:error:undefinedreferenceto'__android_log_print'
jni/NDKtest.cpp:26:error:undefinedreferenceto'__android_log_print'
jni/NDKtest.cpp:29:error:undefinedreferenceto'AndroidBitmap_lockPixels'
jni/NDKtest.cpp:30:error:undefinedreferenceto'__android_log_print'
jni/NDKtest.cpp:39:error:undefinedreferenceto'AndroidBitmap_unlockPixels'
collect2.exe:error:ldreturned1exitstatus
make.exe:***[obj/local/armeabi/libNDKtest.so]Error1

2下载NDK(NativeDevelopmentKit)



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



设置Location,添加ndk-build.cmd

设置workingDirectory选择项目中jni目录

设置buildOptions

勾选如图所示



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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: