最近在学习jni,但是遇到了一点麻烦的问题。好在终于解决了,便记下来解决一下。
其他入门的jni文章有很多,这里便不在累赘,直接上我遇到的问题:
在使用javah编译头文件的时候,很多博客会出现这样一条指令,他就是用来用class文件编译出一个h头文件然后放到jni文件夹里。
- javah -d jni -classpath c:\Users\sodinochen\AppData\Local\Android\sdk\platforms
- \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
便可解决。