Native使用javah生成JNI头文件时错误
2017-06-26 本文已影响64人
Ziv_紫藤花开
javah参数说明
用法:
javah [options] <classes>
其中, [options] 包括:
-o <file> 输出文件 (只能使用 -d 或 -o 之一)
-d <dir> 输出目录
-v -verbose 启用详细输出
-h --help -? 输出帮助信息
-version 输出版本信息
-jni 生成 JNI 样式的标头文件 (默认值)
-force 始终写入输出文件
-classpath <path> 从中加载类的路径
-cp <path> 从中加载类的路径
-bootclasspath <path> 从中加载引导类的路径
<classes> 是使用其全限定名称指定的
(例如, java.lang.Object)。
注:
- 多classpath路径时,使用
;
分号分割。 - 命令使用路径一般为class所在路径,Eclipse项目是在
bin
目录下,AndroidStudio是在XXXProject\app\build\intermediates\classes\debug
路径下
Error 1
Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name
分析原因:
- 类名不不能包含
.class
扩展名 - 执行命令的路径下不包含该class文件
- 完整类名内使用
.
分割,,
或者\\
都不可以 - 如果使用
-classpath
属性,不能放在类名后面 - 路径最好使用双引号包括起来,可省略,但如果路径包含空格,也必须使用双引号包含路径
解决方法:
检查命令是否包含上述错误
Error 2
错误: 无法访问android.support.v7.app.AppCompatActivity
找不到android.support.v7.app.AppCompatActivity的类文件
分析原因:
找不到android.support.v7.app.AppCompatActivity的类文件
解决方法:
使用classpath参数指定AppCompatActivity的类文件位置
javah -classpath "D:\NVPACK\android-sdk-windows\platforms\android-19\android.jar";"D:\NVPACK\android-sdk-windows\extras\android\support\v4\android-support-v4.jar";"D:\NVPACK\android-sdk-windows\extras\android\support\v7\appcompat\libs\android-support-v7-appcompat.jar";. com.ziv.zvideo.BitmapPlayerActivity
Error 3
错误: 无法访问android.app.Activity
找不到android.app.Activity的类文件
分析原因:
找不到android.app.Activity的类文件
解决方法一:
切换到源码文件夹 XXXProject/app/src/main/java 中执行
javah com.xxx.XXXActivity
解决方法二:
使用classpath参数指定Activity的类文件位置
javah -classpath "D:\NVPACK\android-sdk-windows\platforms\android-19\android.jar";. com.xxx.XXXActivity
Error 3.1
错误: 找不到类android.graphics.Bitmap。
分析原因:
找不到类android.graphics.Bitmap,Bitmap类在android.jar文件中,所以指定android.jar所在位置即可
解决方法:
使用classpath参数指定Activity的类文件位置
javah -classpath "D:\NVPACK\android-sdk-windows\platforms\android-19\android.jar";. com.xxx.XXXActivity
Error 3.2
错误: 找不到类com.xxx.xxxx。
分析原因:
使用classpath参数后没有包含当前工程class路径
解决方法:
在classpath参数后使用;
分隔后加一个.
表示包含当前class路径
Error 4
后期遇到更多错误,持续更新
所有问题的万能解决办法
自己写。。。
参考资料:
http://www.jianshu.com/p/3a168c53257c
http://blog.csdn.net/hejinjing_tom_com/article/details/8125648