环境:Android Studio, Mac OS

目标: 用javah 为MainActivity.class 生成 jni header 文件

正确的命令是

cd <class文件的路径>

javah -classpath :<jar包的路径>:. <class文件的包名+类名>

------示例 -----

cd app/build/intermediates/classes/debug

javah -classpath :/Users/username/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/23.4.0/appcompat-v7-23.4.0-sources.jar:. com.y.www.ndk_test.MainActivity

------遇到的问题1 -------

Error: cannot access android.support.v7.app.AppCompatActivity

class file for android.support.v7.app.AppCompatActivity not found

1. 因为MainActivity继承了AppCompatActivity, 需要在classpath中加入AppCompatActivity的jar包,

可以现在android studio中command+点击 打开AppCompatActivity,然后右键copy path, 就能找到jar包的路径了。

2. 有些教程写的是Android.jar包的路径,但是AppCompatActivity并不是在Android.jar包里面,这一点需要注意。

........遇到的问题2 ..........

Error: Could not find class file for 'com.y.www.ndk_test.MainActivity'.

1. 加了classpath之后就找不到需要生成jni header文件的class file了, 需要在classpath后面再加上当前路径. "."表示当前路径, classpath之前用":"分隔 (Mac OS的分隔符是":"不是";")

2. 需要写完整的包名+类名,所以不能cd到MainActivity所在的文件夹,应该cd到debug文件夹

----------总结--------

找不到class file, 要么是class文件根本不存在(没有build project) 要么是路径出了问题,如果路径写的对,也不一定要cd到debug文件夹。

如果要改变生成的.h文件的路径,可以加上-d <路径>

javah -classpath :/Users/username/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/23.4.0/appcompat-v7-23.4.0-sources.jar: -d ../../../../src/main/jni com.y.www.ndk_test.MainActivity

小小的一个命令卡了我2个小时 @_@

javah 生成header file 报错 问题解决的更多相关文章

  1. 在Android工程中加入AIDL文件时,gen目录生成的文件报错-问题解决

    from://http://blog.csdn.net/watt520/article/details/10099047 今天在弄清除缓存的东东,按照网上别人的方法,创建了一个AIDL文件,这个时候发 ...

  2. W10: Warning: Changing a readonly file使用vi/vim报错问题解决

    使用vi/vim编辑文件的时候出现W10: Warning: Changing a readonly file报错 解决方法: 一.强制保存退出 :wq! 二.ll 查询文件属主,使用属主赋予权限 c ...

  3. 【python-HTMLTestRunner】生成HTMLTestRunner报告报错ERROR 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

    [python-HTMLTestRunner]生成HTMLTestRunner报告报错:ERROR 'ascii' codec can't decode byte 0xe5 in position 0 ...

  4. go语言,golang学习笔记3 用命令下载框架报错问题解决 设置环境变量

    go语言,golang学习笔记3 用命令下载框架报错问题解决 设置环境变量 下载安装:go get github.com/astaxie/beego 首页 - beego: 简约 & 强大并存 ...

  5. Python“Non-ASCII character 'xe5' in file”报错问题(转)

    今天在编译一个Python程序的时候,一直出现"Non-ASCII character 'xe5' in file"报错问题 SyntaxError: Non-ASCII char ...

  6. Python“Non-ASCII character 'xe5' in file”报错问题

    今天在编译一个Python程序的时候,一直出现“Non-ASCII character 'xe5' in file”报错问题 SyntaxError: Non-ASCII character '\xe ...

  7. 遇到的eclipse启动报错问题解决

    遇到的eclipse启动报错问题解决 一.启动时出现Java was started but returned exit code=13 可能原因: 1.eclipse与JDK的不是都64位或者32位 ...

  8. javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决

    javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决 在做移动端时间转化为时间戳时,遇到了一个问题,安卓手机上访问时,能拿到时间戳,从而正确转换时间,而在i ...

  9. kafka启动报错&问题解决

    kafka启动报错&问题解决 一早上班,就收到运维同事通知说有一台物理机宕机,导致虚拟机挂了.只得重启kafka服务器. 1.启动 启动zookeeper bin/zkServer.sh st ...

随机推荐

  1. 8、四大组件之三-ContentProvider

    课程目标: 理解ContentProvider的作用及好处 认清ContentProvider与数据存储的关系 掌握ContentProvider对外提供的数据模型形式 能够编写ContentReso ...

  2. C#递归遍历指定目录下文件和文件夹

    #region 使用递归查询某路径中的文件结构 public static void CheckFilePath() { ReadFilePath(); } public static void Re ...

  3. MSP430看门狗

    其实430的看门狗,与51的大同小异,都是为了防止程序跑飞而出现不可预知的错误而专门设定的,所以说,看门狗的应用,是项目马上要进行实际应用中必须要进行的一环,也是电子工程师必须掌握的一环,下面介绍一下 ...

  4. FZU 2129 子序列个数

     Problem Description 子序列的定义:对于一个序列a=a[1],a[2],......a[n].则非空序列a'=a[p1],a[p2]......a[pm]为a的一个子序列,其中1& ...

  5. 使用 cloc 统计代码行数

    可能大家都知道用 `wc -l` 命令进行代码行数统计,但是它会将代码中的注释.空行所占用的文本行都统计在内.如果想查看一个 tar 包或一个项目目录中“实际”的代码行数并且不愿意自己去写一个脚本来做 ...

  6. java继承和多态

    父类和子类 如果类C1扩展自另一个类C2,那么C1称为子类或派生类,C2称为父类或基类.派生类可以从它的基类中继承可访问的数据域和方法,还可添加新数据域和新方法 例如:实现一个几何图形基类; clas ...

  7. Mac java环境配置

    进入命令行 cd ~ touch .bash_profile vi .bash_profile 输入内容jdk变量配置内容: export JAVA_HOME=/Library/Java/JavaVi ...

  8. HDU-4678 Mine 博弈SG函数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4678 题意就不说了,太长了... 这个应该算简单博弈吧.先求联通分量,把空白区域边上的数字个数全部求出 ...

  9. Apache Hadoop压缩包与Eclipse结合,导入jar包归整总结(手动)

    *************************  有些,是没必要全导入的.以后到工作了,用Maven,就自动会导入其中一些.************************ 一般,工作中,用的更多 ...

  10. delphi -- 进制转换 函数表

    1.16 TO 10 ******************************************************** 16转10,否则输出-1 function Hex(c: cha ...