Android javah命令生成头文件遇到的坑

NDK开发中,我们在java文件声明好native方法后,就会调用javah的命令生成对应的头文件,但是在尝试使用javah命令的时候,发现命令行中提示javah既不是外部命令,也不是内部命令。
一番搜索发现原来JDK在JDK10之后就取消了javah命令,如果想要生成头文件需要改成javac -h命令生成。
于是我就用javac -h XX.java命令生成,但是又报了一个错误:无源文件。
又是一番折腾,终于在stackoverFlow上找到了方法,原来javac -h 后面要指定生成头文件的目录,所以命令是javac -h . XX.java(.代表当前目录)
心想这下应该可以了,结果又报了一个错
ImageUtil.java:7: 错误: 找不到符号
public native static int compressBitmap(Bitmap bitmap, int quality, String fileName) ;

内心有点崩溃了。。。
不过后面好在还是找到了解决方案:把android.jar包的路径添加到环境变量classpath里面,然后重启命令行重新输入命令就可以了_(当时用的Android Studio的命令行操作,没有重启,添加好变量后还是报相同的错,后面是重新打开一个命令行窗口才可以运行的)

你可能感兴趣的:(Android javah命令生成头文件遇到的坑)