码迷,mamicode.com
首页 > 移动开发 > 详细

android NDK 生成so 文件流程-ecplice

时间:2015-09-17 13:32:12      阅读:418      评论:0      收藏:0      [点我收藏+]

标签:

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文件

技术分享

 

android NDK 生成so 文件流程-ecplice

标签:

原文地址:http://www.cnblogs.com/newsouls/p/4815973.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!