Android NDK之HelloJni工程遇到的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Fun_Woody/article/details/52075568

今天想自己新建一个NDK的工程来跑一跑试试,在整个过程中遇到了不少问题,把一些在网上没找到方案、自己解决了的问题记录一下。

参照的教程来自http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html,绝对是良心教程。

自己遇到并解决的问题:

1.在cygwin安装配置好以后,测试ndk-build命令,报

bash: ndk-build: command not found

错误,自然是没有修改环境变量,于是在PATH后面添加/cygdrive/d/Android/android-ndk路径,这是我电脑里NDK的路径。把修改后的环境变量读进shell中,再次输入ndk-build,依然报同样的错误。

这就奇怪了,在网上搜了搜,发现确实是在PATH中添加NDK的路径就好了。难道是我的NDK根目录下没有真正可以用来执行的ndk-build文件?于是进入目录下查看,发现有ndk-build.cmd文件,但从刚才执行的情况来看,它并没有什么卵用。那子目录下会不会还有其它可用的ndk-build呢?于是在文件夹下搜ndk-build,发现子目录build下还有两个ndk-build文件,一个无后缀,一个后缀还是.cmd,如下图:


于是想会不会应该在PATH中添加build这个子目录呢?试了一下,果然如此,ndk-build成功:


2.在用javah生成.h头文件时遇到问题。为什么要生成.h文件呢?”刚开始学的时候,有个问题会让人很困惑,相应的C/C++代码如何编写,函数名如何定义? 这里讲一个方法,利用javah这个工具生成相应的.h文件,然后根据这个.h文件编写相应的C/C++代码。“——这就是原因。

按照教程中所说,cd到HelloJni工程目录下,输入

javah -classpath bin -d jni com.example.hellojni.HelloJni

命令,然而报com.example.hellojni.HelloJni类没找到,于是进入到bin目录下,发现还有个classes子目录,进去才是依次按包名命名的文件夹,于是修改命令为

javah -classpath bin/classes -d jni com.example.hellojni.HelloJni

,这次不再报类没找到,而是报

无法访问android.app.Activity
  找不到android.app.Activity的类文件

错误。上网搜,发现有人说:


,于是试着加入-bootclasspath参数传入android.jar的路径,然而还是报同样的错误。于是试试他说的第二个方法,cd到src目录下,输入

javah -d ../jni com.example.hellojni.HelloJni

,果然.h文件生成成功。

之后一路按教程说的做,成功在手机上运行了自己写的第一个NDK程序。

第一次记录到博客,发现真是累……不过解决了问题还是很开心的^ ^

猜你喜欢

转载自blog.csdn.net/Fun_Woody/article/details/52075568