[Java][Android] Javah Jni 遇到找不到类的解决办法

前几天使用弄一个JNI,在使用 javah 生成对应的 .h 文件的时候出现了:“错误:找不到类android.graphics.Bitmap

后来弄了一阵子给弄好了,在这里给大家分享一下。

要解决这个问题,还得要看看我的整个流程。

当我遇到这个的时候,第一反应是 Java 没有包含 Android SDK 中的 java 文件。

然后找到 Android SDK 目录,找到 platforms 文件夹,进入了 “android-20” ,然后找到 “android.jar” 文件,将其添加到计算机环境变量的 CLASSPATH 中。

配置好了后 重新运行:

javah -classpath . -jni net.qiujuer.genius.app.NlurNative

我擦,还是不行!

后来又捣鼓了半天,甚至把 android.jar 解压后添加到环境变量中,但是还是不行。

郁闷了,最终还是搞定了;其实是语句上也有错误:

javah -classpath . -jni net.qiujuer.genius.app.NlurNative  删除掉 “-classpath . ”

javah -jni net.qiujuer.genius.app.NlurNative 一运行就成功了:

javah -classpath . -jni ... 这个是网上找到的;看来网上的也是有很多的错误啊;要慎用

时间: 2024-10-06 00:28:56

[Java][Android] Javah Jni 遇到找不到类的解决办法的相关文章

Android Stduio 发生 Process 'command 'somePath:java.exe'' finished with non-zero exit value 2 异常的解决办法

有时你会发现,在你使用Android Studio 进行编译的时候提示: Error:Execution failed for task ':demo:dexDebug'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'java.exe'' finished with non-zero exit value 2 为什么会这

Tomcat启动找不到JAVA_HOME另类解决办法

1.解决方法:比较新版本的JDK,比如JDK1.7.安装完JDK不会自动注册环境变量JAVA_HOME,JRE_HOME. 这里有一种简单的方法,就是修改setclasspath.bat文件的方法.原理是Tomcat的startup.bat,它调用了catalina.bat,而catalina.bat调用的是setclasspath.bat文件. 修改如下: rem------------------------------------------------------------------

linux上项目报错找不到主机名解决办法

项目报错找不到主机名解决办法 有时候我们的项目在本地运行没问题,但部署到linux服务器上就出错了. 报错:java.net.UnknownHostException: 主机名: 主机名  找不到主机名. 解决方法: 修改服务器上/etc/hosts文件 127.0.0.1  localhost  localhost.localdomain 添加所需的主机名称 或者 127.0.0.1  localhost  localhost.localdomain 127.0.0.1  添加所需的主机名称

[JAVA] IOException: Invalid byte 2 of 2-byte UTF-8 sequence(解决办法)

日志打印不全,后台只打印出出标题的异常信息: 先前的日志打印信息:log.debug(e.getMessage()); 后面改成了日志打印信息:log.debug(e); log.debug(e.getStackTrace()); 日志打印的重要性,不能单单只打印Message   问题原因查找,这个问题在微信支付的维权功能中出现,在网上找了原因之后,下面这个连接给出的最准确: http://blog.csdn.net/linkyou/article/details/3975491   根本原因

java 不允许同一账户不同IP 同时登录系统解决办法 兼容IE Firefox

需求就是 不允许同一个账户同一时间登录系统.只要有一个账户在线其他人就是不能用这个账户. 功能很简单,过程很纠结 . 这篇文章解决了兼容IE.Firefox 浏览器下,不同IP 地址 同一用户同时登陆的解决办法,包括应对浏览器没有正常关闭的情况. 说下解决过程,本来以为用session存取就好了,后来只能在同一个浏览器内标签窗口好用.跨浏览器就不行.因为sessionId不一样.(经测试 跟sessionID 没关系 ) 网上找了一些解决办法.又是些监听器 又是写 方法的: 又是数据库加字段判断

Android开发常见的Activity中内存泄漏及解决办法

上一篇文章楼主提到由Context引发的内存泄漏,在这一篇文章里,我们来谈谈Android开发中常见的Activity内存泄漏及解决办法.本文将会以"为什么""怎么解决"的方式来介绍这几种内存泄漏. 在开篇之前,先来了解一下什么是内存泄漏. 什么是内存泄漏? 内存泄漏是当程序不再使用到的内存时,释放内存失败而产生了无用的内存消耗.内存泄漏并不是指物理上的内存消失,这里的内存泄漏是值由程序分配的内存但是由于程序逻辑错误而导致程序失去了对该内存的控制,使得内存浪费. 怎

android listview 异步加载图片并防止错位 解决办法

网上找了一张图, listview 异步加载图片之所以错位的根本原因是重用了 convertView 且有异步操作. 如果不重用 convertView 不会出现错位现象, 重用 convertView 但没有异步操作也不会有问题. 我简单分析一下: 当重用 convertView 时,最初一屏显示 7 条记录, getView 被调用 7 次,创建了 7 个 convertView. 当 Item1 划出屏幕, Item8 进入屏幕时,这时没有为 Item8 创建新的 view 实例, Ite

在IntelliJ IDEA中添加框架支持时找不到Hibernate的解决办法

问题描述 第一次在Add Frameworks support界面中添加hibernate支持的时候,异常中断,导致没有成功添加. 第二次进入Add Frameworks support窗口时,发现找不到hibernate. 解决办法 打开项目根目录下的spring-mvc-crud.iml文件,搜索hibernate找到这段代码并删除,然后重新添加框架支持即可选择hibernate. <facet type="hibernate" name="Hibernate&qu

在 sys.servers 中找不到服务器的解决办法,自己解决的

一开始提示,在服务器中找不到在 sys.servers 中找不到服务器 'QPAccountsDBLink',先用select * from sys.servers  ,发现只能查到一个服务器名称,后来自己电脑里保存了一些链接脚本,只需改几个地方 -- 变量定义DECLARE @DBName VARCHAR(32)DECLARE @DBUser VARCHAR(32)DECLARE @DBPassword VARCHAR(32)DECLARE @DBSourceAddr VARCHAR(32)D