美文网首页
Native使用javah生成JNI头文件时错误

Native使用javah生成JNI头文件时错误

作者: Ziv_紫藤花开 | 来源:发表于2017-06-26 14:20 被阅读64次

    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)。
    

    注:

    1. 多classpath路径时,使用;分号分割。
    2. 命令使用路径一般为class所在路径,Eclipse项目是在bin目录下,AndroidStudio是在XXXProject\app\build\intermediates\classes\debug路径下

    Error 1

    Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name
    

    分析原因:

    1. 类名不不能包含.class扩展名
    2. 执行命令的路径下不包含该class文件
    3. 完整类名内使用.分割,,或者\\都不可以
    4. 如果使用-classpath属性,不能放在类名后面
    5. 路径最好使用双引号包括起来,可省略,但如果路径包含空格,也必须使用双引号包含路径

    解决方法:
    检查命令是否包含上述错误

    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

    相关文章

      网友评论

          本文标题:Native使用javah生成JNI头文件时错误

          本文链接:https://www.haomeiwen.com/subject/ayfjcxtx.html