javah找不到android.app.Activity的类文件
使用javah
1.java下载以及环境变量的设置,在CMD中输入javah
如下图:
如果现实没有命令,先按照Java,再查看Java环境变量是否配置成功
2.有些人说能直接在通过源代码来生成jni的头文件,但我不行,我是通过编译后的class文件来生成的,具体步骤如下
2-1.
eclipse下新建一个android工程,其实android studio 也一样,在想要调用jni的类中添加想要的方法名,
格式一定要有native哦(ps: 声明这是一个要调用jni的方法)
下图是我的例子:
包名:com.zhanghuaming.myndkproject
类名:MainActivity
类的全名:com.zhanghuaming.myndkproject.MainActivity
2-2:
打开CMD切换到工程的目录(eclipse 你项目工程的右键选择 properties下location能看到你工程的具体路劲哦,我路劲是 D:\AndroidStudioProjects\MyNDKproject )
(ps :cmd和linux不一样,cd 路径后还要输入 盘符: 我的是d盘 所以输 d: 注意有分号)
javah -classpath bin/classes -jni 类的全名(ps: -d 是输出路径 ,我没有需要自己添加)
例子 javah -classpath bin/classes -jni com.zhanghuaming.myndkproject.MainActivity
没有成功是因为我的MainActivity是继承Activity的,所以要加入Activity的路径
到你的sdk路径找到android.jar包(D:\APP\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-22)(版本尽量大咯)
加上\android.jar 如 D:\APP\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-22\android.jar
在-classpath 参数后加 ; 号 再加android.jar的路径 如:
成功咯
现在去工程目录把头文件拷来用吧,通过头文件写你的jni文件吧
详细命令:
javah -classpath bin/classes;你android.jar的全路径 -jni 类全名
javah -classpath bin/classes;D:\APP\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-22\android.jar -jni com.zhanghuaming.myndkproject.MainActivity