javah参数说明
用法:
javah [options]
其中, [options] 包括:
-o 输出文件 (只能使用 -d 或 -o 之一)
-d
-v -verbose 启用详细输出
-h --help -? 输出帮助信息
-version 输出版本信息
-jni 生成 JNI 样式的标头文件 (默认值)
-force 始终写入输出文件
-classpath 从中加载类的路径
-cp 从中加载类的路径
-bootclasspath 从中加载引导类的路径
是使用其全限定名称指定的
(例如, 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
后期遇到更多错误,持续更新
所有问题的万能解决办法
自己写。。。