javah 找不到Activity类

其实和上一篇问题一样,仍然是classpath路径的问题;创建路径:com.example

public class JniTest extends Activity{


    public static native String hello_jni();

	
	public static void main(String[] args){
		System.out.printf("hello-jni");
		
	}
}

解决方案:

进入 你的项目\app\build\intermediates\classes\debug  通过Android studio进行Build-》Make Project进行生成.class文件

在Terminal进入以上的目录,通过javah -jni com.example.JniTest 如果找不到这个类,参考上一篇文章

找到类之后,会发现提示找不到android.app.Activity类,这是因为classpath没有配置到环境变量中,教大家写一种完整的javah方案,好好看看classpath路径,或许就明白了

 javah -classpath 你的项目路径\app\build\intermediates\classes\debug;你的Androidsdk路径\platforms\android-25\android.jar -jni com.example.JniTest       

上面这段dos命令大家按照自己的实际情况进行写,(如:你的项目路径,是你的项目存在你的硬盘中的绝对路径),android-25,那个Android版本都行

原理:其实就是java在编译class文件中会进行对其中导入的包(android.app.Activity)进行按照环境变量和设置的进行查找,如果查找不到,自然报错

所以,只需要把你的sdk中的编译android的android.jar配置到环境变量中,当然前面的路径,如果你不嫌麻烦,那就把所有工程的目录配置到classpath中,也可以使用DOS中set classpath=你的项目路径\app\build\intermediates\classes\debug 你可能在很多解决方案中看到classpath后面有'.',这个点千万不要点,不知道哪个大哥开始的这个毛病。


好,刚开始写CSDN,由于经验不足,写的文章可能有点bug,如果有什么问题,欢迎留言,看到后回复,下一篇给大家点更方便使用Android studio和ndk开发的干货


自学软硬嵌入式的可加QQ群:371776285

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值