不知不觉从自己跨入技术行业已经三年了,突然想开始博客生涯,来吧,发布昨天刚刚解决的一个小问题。
1.javah找不到 com.example.JniTestt类(自己准备生成头文件的类),系统dos找不到你的类,反推一下,其实就是你的java 的问题,解决方案如下:
win+R-》cmd,开启windows DOS命令行,随便写一个java类,通过javac编译,然后通过javah编译,看是否能编译,如果出现上述问题,ok,其实就是classpath没通过,
两种方案:
1)通过set classpath="你想要使用javah编译class文件的路径,绝对路径",然后javah -jni JniTest
public class JniTest{
//其实这里现在不写也可以,等到ndk准备生成.so库的时候再写就可以
static {
System.loadLibrary("jnitest");
}
//native本地函数
public static native String hello_jni();
//方便在dos中测试,写了一个主函数
public static void main(String[] args){
System.out.printf("浣犲ソ");
}
}
2)通过javac 到上述.java文件下编译java为.class文件,然后通过javah -classpath 文件所在目录 -jni JniTest (PS:中间没有点隔断,只有空格,JniTest后面没有.class)
这里就可以生成一个.h
头文件,你会发现,直接在dos中就能生成,其实初学者很很容易陷入一个误区,我学习Android,Android通过java开发,那么java就一定是Android的,其实java是世界的,它有丰富的设计理念和各类工具,好,
现在解决NDK开发中Javah不能找到类的问题,通过配置classpath到相应的路径,或是直接到达你的项目路径下 如:你的项目路径\app\vuild\intermediates\classes\debug 输入javah -jni com.example.JniTest ,如果仍然找不到类,那么试试 set classpath=你的项目路径\app\vuild\intermediates\classes\debug 在dos中进行设置,然后进行javah -jni com.example.JniTest
注:第一篇技术文档,不熟悉优快云,试试,下一遍解决找不到Activity相关开发Android的类,
自学软硬嵌入式的可加QQ群:371776285