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文件
写入配置
在编译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文件
首先说一句网上,大部分博客这么写的:打开控制台,进入项目目录,运行
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文件
相关文章推荐
- 解析Android崩溃日志(Android ndk-stack tool)
- Android中Cursor类的概念和用法
- Android生命周期与Java类周期的交互融合
- 2015最新的 导航条《actionbar》给大家分享。
- 关于Android开发的一些概念问题
- 【Android】加载 surfaceView 时闪一下黑屏解决
- android:Layout_weight正确的理解
- Android学习课程---Intent
- android自定义radiobutton样式文字颜色随选中状态而改变
- Android基本View控件
- Android之RecyclerView 实现真正的Gallery效果
- Android开发:Handler Runnable和Thread之间的区别和联系
- Xamarin.Android经验之谈
- Android之socket客户端
- android下访问已存在的sqlite数据库文件的办法
- Android 开发工具
- 原生android中对AsynckTask中实现方法的理解
- Android发送短信并监测发送状态
- android四大组件之Service详解
- 在Android Studio的drawable文件下创建XML文件