Here’s a very rough overview of how you can develop native code with the Android NDK: 1/ Run ??build/host-setup.sh to configure the NDK The last step will copy, in case of success, the stripped shared libraries your application needs to your application’s root project directory. You will then need to generate your final .apk through the usual means. 按照上述步骤,我们说明在每一步中可能存在的错误【第一步,我们就不在这里详细说了,网上有很多不错的文章】。 常见错误说明: 这个错误的主要原因是:编译C文件为最后的so库文件需要2个文件:Application.mk、Android.mk,如下图所示: MK文件如何设置,看了上面的图一目了然【详细的说明还是要去看文档】,以下几点需要注意: 这个错误只要大家仔细看下就明白是C 的编译错误,C 代码无法编译。 如何编写C文件【native file】中的函数说明?从Java Source File推导出C/C++ Native File,可以参考以下4步: 1)????????编译java文件【Java sources:包含我们需要的native函数】,如下图所示: 2)????????使用命令javac JNITest.jva && javah JNITest,命令运行后增加了2个文件: JNITest.jva编译后的文件JNITest.class、JNITest.h,这个文件就是我们需要的头文件,如下图所示: 3)????????修改函数名,如何修改?我们先分析Android-NDK中的例子程序: 从上面的例子发现,函数名分为4部分: 按照上面的规则修改就可以了。 4)??????? 将上面的函数声明拷贝出来,在jni文件中创建一个*.c文件,按照上述函数结构实现函数,如下图所示: 这样我们就从Java Source File一步一步的得到C/C++ Native File。 库文件的加载: 编译后的so文件是libJNITest.so,而实际加载的库文件名是: JNITest【这实际上是Unix的“规范”,在Android NDK的文档OVERVIEW.txt中有详细说明】;还有Linux系统区分大小写的,所以如果上面的代码中,将加载的库文件名写成jnitest,也会导致运行崩溃。转自:http://www.moandroid.com/?p=1848Andorid NDK使用简要的流程【来源于Android NDK文档中的 OVERVIEW.txt】
2/ Place ?your native sources under $PROJECT/jni/…
3/ Write ?$PROJECT/jni/Android.mk? to describe your sources to the NDK build system
4/ Write ?apps/<myapp>/Application.mk to describe your application and the native sources it needs to the NDK build system
5/ Build ?your native code by running “make APP=<myapp> ” in the top-level NDK directory.1、make:*** No rule specified and no make file found. Stop.
错误的原因估计是(cat : Linux命令,显示文件的内容):工程名与Aplication.mk中的APP_MOUDLES不一致。2、make: *** No rule to make target ?“XXXXXX”, needed by “ndk-app-XXXXX”. Stop.
这些在Android NDKzhong 都有“严格”规范的,在android-ndk的文档中都有详细说明。3、make: ***[XXXX]Errror? 1
4、程序运行时崩溃,这个时候我们需要注意以下几个问题:
详细解决方案
Android NDK使用常见异常
热度:88 发布时间:2016-05-01 16:33:23.0
相关解决方案
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android 大量数据按周分组,该如何解决
- android RadioButton如何设置默认选中
- ksoap2-android-这个包,连接webService怎么设置超时
- android 怎么重新设置锚点
- android UI界面设计解决方案
- android 图片对象获取的有关问题
- android 怎么调用淘宝支付宝接口
- Android 沿袭InputMethodService自定义输入法
- android 关于服务连接的疑义
- android 两个activity如何通信
- android 怎么实现对view的放大和缩小
- android 教程解决方法
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- android(java)中的java.net能不能和c#的system.net.sockets进行tcp通信,该如何解决
- android ListView 中的onItemClick Intent 没法跳转
- android(java) 中文乱码的有关问题
- c#c++,android,ios(iphone),php,java视屏课程 散分
- android Post文件到ASP.NET的有关问题,能收到参数收不到文件
- RIM 替 Android 开发者提供免费的 PlayBook!2月13日前
- android 动态设立控件高度
- Android test project 编译方法
- android -相机使用教程(1)解决方法