android中javah生成jni头文件报错问题
2013-06-20 09:57
351 查看
android中调用native code时,需要用到jni,第一步就是生成类的头文件,android提供了javah工具,貌似是个反编译生成class.h,用法:javah -jni xx.xx.xx,后面是类的路径+名字,但好多时间都报错找不到类文件,主要是2个问题。
1.生成的类是单独的,没有和android有关系的情况下,一般是路径设置问题。比如,我生成的类名字为hellofore,package为com.example.sayhellojni,目录在worksapce下面。
code:
package com.example.sayhellojni;
public class HelloFore{
public HelloFore(){
}
public native void sayHello(String name);
}
目录:G:\Work\Android\workspace\SayHelloJni。
那么要执行命令如下:javah -jni com.example.sayhellojni.HelloFore . 这个一般都没问题,但还是报错,原因就是路径有问题。
正确的执行路径是:G:\Work\Android\workspace\SayHelloJni\bin\classes,也就是工程的bin\classes目录下,因为javah -jni执行的是com\example\sayhellojni\HelloFore.class,HelloFore.class是javac HelloFore.java得到的。javah -jni 是对class执行的。
2.生成的类如果和android相关的,要set android相关的source code.
比如:MainActivity class,是android默认的class.如果javah -jni com.example.sayhellojni.MainActivity,还是报错,找不到类文件,但这次是由于没有相关的android class source引起的,需要 set CLASSPATH来解决,可以在cmd下设置工程的src,set CLASSPATH= G:\Work\Android\workspace\SayHelloJni\src.
这样再执行javah -jni com.example.sayhellojni.MainActivity就不会报错,并且在com目录下生成了com_example_sayhellojnia_HelloFore.h,com_example_sayhellojni_MainActivity.h文件。
1.生成的类是单独的,没有和android有关系的情况下,一般是路径设置问题。比如,我生成的类名字为hellofore,package为com.example.sayhellojni,目录在worksapce下面。
code:
package com.example.sayhellojni;
public class HelloFore{
public HelloFore(){
}
public native void sayHello(String name);
}
目录:G:\Work\Android\workspace\SayHelloJni。
那么要执行命令如下:javah -jni com.example.sayhellojni.HelloFore . 这个一般都没问题,但还是报错,原因就是路径有问题。
正确的执行路径是:G:\Work\Android\workspace\SayHelloJni\bin\classes,也就是工程的bin\classes目录下,因为javah -jni执行的是com\example\sayhellojni\HelloFore.class,HelloFore.class是javac HelloFore.java得到的。javah -jni 是对class执行的。
2.生成的类如果和android相关的,要set android相关的source code.
比如:MainActivity class,是android默认的class.如果javah -jni com.example.sayhellojni.MainActivity,还是报错,找不到类文件,但这次是由于没有相关的android class source引起的,需要 set CLASSPATH来解决,可以在cmd下设置工程的src,set CLASSPATH= G:\Work\Android\workspace\SayHelloJni\src.
这样再执行javah -jni com.example.sayhellojni.MainActivity就不会报错,并且在com目录下生成了com_example_sayhellojnia_HelloFore.h,com_example_sayhellojni_MainActivity.h文件。
相关文章推荐
- AndroidStudio JNI开发时,javah生成c头文件出现找不到android.support.v7.app.ActionBarActivity的类文件问题
- ubuntu14下整合eclipse和javah生成jni头文件遇到无法访问android.app.Activity 找不到android.app.Activity的类文件问题的解决方案
- AndroidStudio JNI开发时,javah生成c/c++头文件出现找不到android 的类文件问题
- 关于JNI中调用javah生成.h文件的问题
- android jni开发,用javah生成***.h头文件,用ndk在libs下生成***.so文件
- [转]ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
- Android Javah生成JNI头文件
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
- javah生成jni头文件时报错 Error: cannot access android.support...
- Android JNI开发生成.h头文件问题(转)
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
- Android 开发中如何用Javah命令生成JNI头文件
- android jni javah生成.h文件, 出现无法访问android.app,Activity的错误
- Android JNI开发生成.h头文件问题
- android Javah生成JNI头文件
- 解决javah生成c头文件时找不到android类库的问题
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
- Android JNI开发生成.h头文件问题
- Android JNI开发生成.h头文件问题