生成class关于使用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。

    

    如图所示 : 

    生成和class

    

    解决方案 :

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

    每日一道理
生活中受伤难免,失败跌倒并不可怕,可怕的是因此而一蹶不振,失去了对人生的追求与远大的理想。没有一个人的前进道路是平平稳稳的,就算是河中穿梭航行的船只也难免颠簸,生活中所遇上的坎坷磨难不是偶尔给予的为难,而是必然所经受的磨练。

    如图 :

    生成和class

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

    生成和class

    

    在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 命令即可编译。

    生成和class

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

    生成和class

    

文章结束给大家分享下程序员的一些笑话语录: Borland说我很有前途,Sun笑了;Sun说我很有钱,IBM笑了;IBM说我很专业,Sybase笑了;Sybase说我数据库很牛,Oracle笑了;Oracle说我是开放的,Linux笑了;Linux说我要打败Unix,微软笑了;微软说我的系统很稳定,我们都笑了。

--------------------------------- 原创文章 By
问题和命令
---------------------------------

原文地址:https://www.cnblogs.com/xinyuyuanm/p/3106634.html