说明
有一demo的java文件存放路径:/root/workspace_android/javaJNI/src/com/compal/javaJNI第一步
进入该路径,执行javac HelloJni.java生成了.class文件第二步
退到/root/workspace_android/javaJNI/src目录下 执行javah -jni HelloJni出现错误。。。错误说明
error: cannot access HelloJni class file for HelloJni not found javadoc: error - Class HelloJni not found. Error: No classes were specified on the command line. Try -help.第三步
再次进入/root/workspace_android/javaJNI/src/com/compal/javaJNI 试试执行javah -jni HelloJni依然出错。。。错误说明
error: cannot access HelloJni bad class file: RegularFileObject[./HelloJni.class] class file contains wrong class: com.compal.javaJNI.HelloJni Please remove or make sure it appears in the correct subdirectory of the classpath. com.sun.tools.javac.util.Abort at com.sun.tools.javac.comp.Check.completionError(Check.java:180) at com.sun.tools.javadoc.DocEnv.loadClass(DocEnv.java:159) at com.sun.tools.javadoc.RootDocImpl.<init>(RootDocImpl.java:95) at com.sun.tools.javadoc.JavadocTool.getRootDocImpl(JavadocTool.java:188) at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:364) at com.sun.tools.javadoc.Start.begin(Start.java:162) at com.sun.tools.javadoc.Main.execute(Main.java:113) at com.sun.tools.javah.Main.main(Main.java:153) javadoc: error - fatal error 2 errors第四步
好吧,继续退到/root/workspace_android/javaJNI/src目录下 执行javah -jni com.compal.javaJNI.HelloJni.这次成功生成了 com.compal.javaJNI.HelloJni.h文件。第五步
下面编辑.c文件。。。偶是直接新建文件,然后写的。不知道有其他什么好办法。。。第六步
好了,还是在这个目录下执行 gcc -shared -fPIC -I /usr/local/lib/sun_jdk/jdk1.6.0_24/include/ -I /usr/local/lib/sun_jdk/jdk1.6.0_24/include/linux/ com_compal_javaJNI_HelloJni.c -o libcom_compal_javaJNI_HelloJni.so /usr/local/lib/sun_jdk/jdk1.6.0_24/这个目录是我安装的java目录 看http://abitno.me/a-simple-tutorial-to-jni这里的解释说/usr/local/lib/sun_jdk/jdk1.6.0_24/include/这里面包含有jni.h文件, 而在刚才生成的.c文件中引用了jni.h文件,而/usr/local/lib/sun_jdk/jdk1.6.0_24/include/linux/这是jni.h需要的支持文件。 至此.so文件就生成了。后续
Android NDK 上自带的JNIdemo。直接进入一个例子如: /usr/local/lib/android-ndk-r7/samples/hello-jni 执行命令ndk-build,就创建好了.so动态库。用eclips导入直接就能在模拟器上运行成功。参考:
http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html http://blog.csdn.net/xyz_lmn/article/details/6955031 http://abitno.me/a-simple-tutorial-to-jniPS:
就这么2篇文,搞了10个小时。不要低估菜鸟的下限啊这格式怎么这么难搞啊。。。。文档写少了。菜鸟啥都不会
![]()
菜鸟的helloJNI
最新推荐文章于 2024-07-27 13:31:57 发布