关于使用javah生成头文件时无法访问class文件的问题

当生成java类,并且使用javac编译以后,生存JniDemo.class文件。比如此时所在的路径是XXX/src/com/example/hellojni。你的class文件就在这个hellojni文件夹里面,此时如果你直接在这个目录下使用javah命令,则会出现如下错误:    

错误: 无法访问 com.example.hellojni.JniDemo

       找不到文件com.example.hellojni.JniDemo.class
       javadoc: 错误 - 找不到类com.example.hellojni.JniDemo

       Error: 未在命令行中指定任何类。请尝试使用 -help。


如图所示 : 


解决方案 :

此时,你可以返回到src目录,然后再执行javah com.example.hellojni.JniDemo .

如图 :


此时的目录是src,然后执行javah , 注意要加上完整的包名。最后生成了.h文件。



在C文件中实现该头文件中声明的方法,然后写完Android.mk文件。

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := hellojni
LOCAL_SRC_FILES :=helloJni.c

include $(BUILD_SHARED_LIBRARY)

最后到cygwin 命令终端下,切换到项目主目录,比如我们这里是D:\JavaProFor64\HelloWorld,然后执行$ndk/ndk-build 命令即可编译。


最后.so动态库文件会在D:\JavaProFor64\HelloWorld\libs\armeabi中存放。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值