最近在学习jni,但是遇到了一点麻烦的问题。好在终于解决了,便记下来解决一下。

其他入门的jni文章有很多,这里便不在累赘,直接上我遇到的问题:

在使用javah编译头文件的时候,很多博客会出现这样一条指令,他就是用来用class文件编译出一个h头文件然后放到jni文件夹里。

  1. javah -d jni -classpath c:\Users\sodinochen\AppData\Local\Android\sdk\platforms  
  2. \android-16\android.jar;..\..\build\intermediates\classes\debug lab.sodino.jnitest.MainActivity  

但是我在使用的过程中出现了各种莫名其妙的问题。如:

java.lang.IllegalArgumentException :Not avalid class name 

或者

Error: no classes specified

bash: ../../build/intermediates/classes/debug: is a directory。

总之是编译不出头文件。纠结了很久,终于找到了解决方案,但是具体原因仍然不明确。

解决方案:

进入src/main/java文件夹执行指令:javah -d ../jni com.wingsofts.jniii.MainActivity

便可解决