问题描述:
cmd下面进入工程的bin/classes下面,执行 javah xxx.xxx.A 生成头文件,
一般来说都是可以成功执行的,但是如果xxx.xxx.A类里面引用了android类库里面的类的话,就会报异常,如下图:
![](file:///C:/Users/Administrator/AppData/Local/YNote/data/qq30151A15E6E038A670248C336861EB12/6dcc07aa775b4f5f9640828e41a68e56/dy9ez8nthqtg.png)
上面因为引用了android.graphics.Bitmap,所以导致生成头文件失败。
![](file:///C:/Users/Administrator/AppData/Local/YNote/data/qq30151A15E6E038A670248C336861EB12/6dcc07aa775b4f5f9640828e41a68e56/dy9ez8nthqtg.png)
![](https://images0.cnblogs.com/blog2015/420264/201508/051825381422804.png)
解决办法:
执行javah命令的时候,可以指定classpath,将需要的jar包引入进去就可以了。如下
javah -classpath D:ideandroid-sdkplatformsandroid-22android.jar;. -jni javah xxx.xxx.A
这样就可以成功的编译了。
这里值得注意的是classpath后面一定要记得加上“.”,否则就找不到目标类了。
![](file:///C:/Users/Administrator/AppData/Local/YNote/data/qq30151A15E6E038A670248C336861EB12/91d1350b2d694ab6970c6b4e16e3e9f3/j%60)~%5Baf7j7dp.png)