Android,使用 javah 生成 jni 头文件,显示找不到 org.opencv.core.Mat 的错误

2023-11-23

当我用 jni 编译 java 类中的本机方法时,我只是遇到了一个恼人的问题javah生成 JNI 头文件。

如果该类使用了第3方包,例如:org.opencv.core.Mat,则javah会显示找不到 org.opencv.core.Mat 类的错误。

OpenCV示例代码如下:

package org.opencv.samples.fd;

import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;

public class DetectionBasedTracker
{
public DetectionBasedTracker(String cascadeName, int minFaceSize) {
    mNativeObj = nativeCreateObject(cascadeName, minFaceSize);
}

public void start() {
    nativeStart(mNativeObj);
}

public void stop() {
    nativeStop(mNativeObj);
}

public void setMinFaceSize(int size) {
    nativeSetFaceSize(mNativeObj, size);
}

public void detect(Mat imageGray, MatOfRect faces) {
    nativeDetect(mNativeObj, imageGray.getNativeObjAddr(), faces.getNativeObjAddr());
}

public void release() {
    nativeDestroyObject(mNativeObj);
    mNativeObj = 0;
}

private long mNativeObj = 0;

private static native long nativeCreateObject(String cascadeName, int minFaceSize);
private static native void nativeDestroyObject(long thiz);
private static native void nativeStart(long thiz);
private static native void nativeStop(long thiz);
private static native void nativeSetFaceSize(long thiz, int size);
private static native void nativeDetect(long thiz, long inputImage, long faces);
}

首先,我使用了命令

javah -classpath bin/classes -bootclasspath (the directory of android.jar) -d jni (packageName + ClassName) , shows the error "can't find the org.opencv.core.Mat

然后我将命令修改为

javah - classpath bin/classes - bootclasspath (the dir of android.jar) ; (the dir of the opencv lib jar)  -d jni ..." ", this time it shows error

例外

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class
 name: E:\Computer_Language\Java\soft_android\OpenCV-2.4.3-rc-android-sdk\OpenCV
-2.4.3-rc-android-sdk\sdk\java\bin\opencv library - 2.4.3.jar
    at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:177)
    at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:68)
    at com.sun.tools.javah.JavahTask.run(JavahTask.java:509)
    at com.sun.tools.javah.JavahTask.run(JavahTask.java:335)
    at com.sun.tools.javah.Main.main(Main.java:46)

我想,将opencv lib的目录添加到-bootclasspath是有用且必要的。错误是因为我刚刚添加了两个路径-bootclasspath或者格式有问题?

真的很困惑。 请给予一些帮助,谢谢!


这就是我所做的:

1.打开命令行,在(project)/bin/classes中输入: 2.type: javah -classpath (opencv4android sdk path)/java/bin/classes:(你的项目位置)/bin/classes -jni (你的包含原生库接口的java类文件)

在我的项目中。我做了:

javah -classpath /home/zijun/Dev/adt/OpencvAndroid/sdk/java/bin/classes:/home/zijun/workspace/LocTM/bin/classes -jni com.brainport.loctm.TMatching

适用于 Linux Ubuntu 12.04.02 64 位操作系统

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android,使用 javah 生成 jni 头文件,显示找不到 org.opencv.core.Mat 的错误 的相关文章

  • Android 的 GCM 推送通知[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近 我尝试学习 GCM 并制作一个测试应用程序 该应用程序将通过 androids 官方网站获取 an
  • 不支持动态值作为注释中的属性 - AspectJ Android [AOP Android]

    我正在使用自定义注释来记录用户单击的 id 但我收到一个错误 属性值必须是常量 我的代码片段如下 mAssetId Asset getContentId TrackEvent track event ArrayParams Params k
  • 应用程序启动时立即隐藏导航栏

    基于以下代码片段 我能够隐藏状态栏当应用程序启动时 但不是导航栏 由后退 主页和任务管理器按钮组成的栏 因为它隐藏了稍后在 MainActivity 的线程完成加载后 这是清单
  • Android ACTION_DATE_CHANGED 广播

    我有 Nexus S 当我在手机上手动更改日期时 ACTION DATE CHANGED 并不总是被广播 如果我将日期从 2014 年 2 月 13 日更改为 2014 年 2 月 14 日 我还没有获得 ACTION DATE CHANG
  • Android,无法从谷歌API获取天气

    以下代码之前运行良好 class RetreiveWeatherTask extends AsyncTask
  • 如何以编程方式从 mipmap 文件夹加载图像? [复制]

    这个问题在这里已经有答案了 如何从 加载图像mipmap以编程方式保存文件夹 与可绘制对象一样 img setImageResource imageId 我使用的是Android Studio 1 2 1 In 安卓工作室我们有mipmap
  • 卡片视图工具栏

    我有一个包含 CardView 的 RecyclerView 我想向每个 CardView 添加一个工具栏 其外观和行为类似于主工具栏 图标 标题 按钮 按钮 菜单 我从这里看到了 http blog grafixartist com cr
  • 使用 ArrayAdapter 的 ListView 中的按钮

    我有一个使用 POJO 类填充的 ArrayAdapter 列表视图由 2 个布局组成 1 代表菜单项 1 代表类别 带分隔符的列表视图很好 后来我尝试在每个菜单项行中添加一个按钮来编辑其中的详细信息 当我尝试获取单击按钮的行的位置时 我遇
  • 如何防止 Activity 在后退操作时重新加载

    我有连接到互联网以获取数据的应用程序 我可以多层次访问数据 假设我从第 3 级开始 在第 4 级我决定返回 每当我按回之前的活动时 就会从互联网重新加载数据 有可能阻止这种情况吗 我尝试以单顶模式运行该活动 将数据加载代码移至 single
  • 使用 appcelerator titan 在 android 中后退按钮退出应用程序

    我是钛开发的新手 在本机 android 中 如果我们按下后退按钮 则仅当前活动将被关闭 并且它将返回到上一个活动 但是当我使用 Titanium 在 Android 中按下后退按钮时 它会从应用程序退出 我怎样才能改变这种行为 有两种类型
  • 在android中以编程方式创建布局 - 问题

    我正在使用以下代码动态创建 FrameLayout mylayout java FrameLayout layout new FrameLayout this FrameLayout LayoutParams layoutparams ne
  • OpenCV的拼接模块可以拼接平行运动相机拍摄的图像吗?

    我想知道是否缝合 http docs opencv org modules stitching doc stitching html http docs opencv org modules stitching doc stitching
  • 使用opencv计算深度视差图

    我无法使用 opencv 从视差图计算深度 我知道两个立体图像中的距离是用以下公式计算的z baseline focal disparity p 但我不知道如何使用地图计算视差 我使用的代码如下 为我提供了两个图像的视差图 import n
  • 完成特定 Activity 的所有实例

    应用程序中可以有很多活动 最后启动的活动保留在堆栈顶部 按下后它会完成当前活动 我有一系列活动 这是流程 如果我们有 A B C 1 D C 2 活动 C 1 和 C 2 是在导航应用程序时启动的活动 C 的两个不同实例 因此 必需的是清除
  • Android 视图上的动态气泡

    任何人都可以如何在Android布局上制作可点击的动态气泡 我的设计师对屏幕的想法如下 我的图像中所有气泡都是分配给用户的一组任务 气泡的标签根据任务而变化 1 1 根据我的项目要求 颜色和半径将根据 api 响应而变化 您能建议任何演示或
  • 未调用内容提供商 query() (Android TV)

    据报道 我正在尝试将我的应用程序纳入 Android TV 全局搜索中文档 http developer android com training tv discovery searchable html我必须创建以下内容 内容提供商 可搜
  • 我可以在导航组件中使用多个 NavHostFragment 吗?

    如果您难以理解以下段落 请查看我制作的流程图 我目前正在制作一个带有 3 个顶级目的地的笔记应用程序 顶级目标之一 NotesList 显示用户创建的注释列表 NotesList 有一个过滤器按钮 可显示带有 FilterMenu 目标的底
  • Android 图标与徽标

    The
  • 我的 apk 文件在模拟器中的位置

    我在 eclipse android 中编写了一个小程序 现在我安装并运行我的程序 它是一个 apk 现在我想知道我的 apk 文件在哪里 我什至想将它 拉 到我的系统中 是否可以 如果是这样请帮助我 如果您只想将 apk 安装在手机或类似
  • 如何在对话框中配置自定义按钮?

    这里我有一个自定义对话框 里面有背景 2 ImageButton 问题是 当我尝试为该按钮设置 onclick 侦听器时 程序将返回 NullPointerException 我不知道为什么会发生这种情况 无论如何如何将操作分配给对话框内的

随机推荐

  • git github无法推送到原点

    我可能遗漏了一些东西 但我确信我已经检查了所有内容 我分叉了一个存储库并将其克隆到我的系统上 做了一些改变 提交后 做过git push origin master it says fatal remote error You can t
  • 如何让AngularJS编译指令生成的代码?

    请帮助我 我们如何让 AngularJS 编译指令生成的代码 您甚至可以在这里找到相同的代码 http jsbin com obuqip 4 edit HTML div names 0 names 1 br div
  • 异常 android.support.multidex.MultiDexApplication 无法转换类

    我有一个问题 我的应用程序生成此异常 但我不明白 我已经在 build gradle 中实现了 multiDexEnabled Caused by java lang ClassCastException android support m
  • 将 Log4j 输出写入 HDFS

    有没有人尝试过write log4j日志档案直接地to Hadoop分布式文件系统 如果是 请回复如何实现这一点 我想我必须为它创建一个Appender 是这样吗 我的需要是以特定的时间间隔将日志写入文件 并在稍后阶段查询该数据 我建议使用
  • 从 C# 中的字符串文件路径中删除多余的反斜杠“\”

    如何转换 String path C Abc Omg Why Me into String path C Abc Omg Why Me 我的做法是首先reverse the string进而移除所有 the 直到我们得到first char
  • IntelliJ Idea 中无副作用方法的未使用结果的警告

    当我不分配结果时BigDecimal divide 方法到变量时 我从 IntelliJ Idea 收到了一个很好的警告 BigDecimal divide 的结果被忽略 我可以以某种方式为我自己的 无副作用 函数获得相同的警告吗 比如为我
  • 创建常量字典对象

    我想完成一些类似于这篇文章中所做的事情 Objective C 中的常量 但是 我想构造一个 NSDictionary 如果我做类似的事情 常量 h extern NSArray const mFooKeys extern NSArray
  • 如何让matplotlib准确放置线条?

    默认情况下 matplotlib 绘图可能会非常不准确地放置线条 例如 请参阅附图中左端点的位置 至少有一整像素的空气是不应该存在的 事实上 我认为线中心偏离了 2 个像素 如何让matplotlib绘图准确 我不介意性能是否会受到影响 m
  • 通过成员数据在向量中搜索结构体项

    我对 C 非常陌生 我正在尝试找到一种方法来搜索结构向量以查找具有特定成员数据的结构 我知道这适用于向量中的简单类型 std find vector begin vector end item vector end 但假设我有一个这样的结构
  • 使用 JavaScript 更改标签文本

    为什么以下内容对我不起作用
  • Angular2 中的更改不会更新视图

    我已经开始探索 Angular2 我带着 Angular1 和一些 React 背景而来 但我遇到了一个问题 我想将某些击键绑定到组件中的操作 因此我决定使用 Angular2 生命周期来绑定 取消绑定操作 但是 如果我在 Mousetra
  • 如何比较两个 NSMutableArray?

    如何比较两个 NSMutableArray 如果两者相同则返回 true 否则返回 false 谢谢 return array1 isEqualToArray array2 returns YES如果数组相等 则返回NO
  • 将 matplotlib 图形嵌入到 iPython HTML 中

    我想在 Jupyter Notebook 中使用代码单元动态编写和显示 HTML 目标是生成 HTML 以我选择的某种方式显示 table div img 标签 我想捕获 img 数据并将其放置在自动生成的 HTML 中我想要的位置 到目前
  • 摆脱内联块图像下方的空间[重复]

    这个问题在这里已经有答案了 如何消除图像底部和包装器之间的空间 同时保持图像作为内联块 为什么会发生这种情况 http jsfiddle net dJVxb 2 HTML div img src https twimg0 a akamaih
  • Jquery 在按钮上打开弹出窗口,单击以进行引导

    当我点击下面的按钮时
  • 使用 Selenium IDE 访问 JavaScript 变量

    我想知道是否可以使用 Selenium 访问页面 JavaScript 变量 我有一个应用程序使用附加到窗口对象的变量 它具有全球范围 我可以通过以下方式访问它window myvar window myvar myvar this myv
  • 如何获取Azure网站中的本地文件系统路径

    我在磁盘上托管了一个文件以及我想要读取的网站 当我使用 System Environment CurrentDirectory 时 不确定如何访问该文件 它指向 D 驱动器位置 有人可以告诉我如何才能访问该文件吗 访问存储在我的网站托管位置
  • 卡夫卡主题_授权_失败

    我实际上正在努力使用 SASL 纯文本设置简单的 Kafka 身份验证并添加 ACL 授权 但当我尝试使用数据时遇到问题 main INFO org apache kafka common utils AppInfoParser Kafka
  • Pandas 使用 read_sql_table 使用过多内存

    我正在尝试将 Postgres 数据库中的表读入 Python 表大约有 800 万行和 17 列 数据库大小为 622MB 我可以使用 psql 将整个表导出到 csv 然后使用 pd read csv 读取它 它工作得很好 Python
  • Android,使用 javah 生成 jni 头文件,显示找不到 org.opencv.core.Mat 的错误

    当我用 jni 编译 java 类中的本机方法时 我只是遇到了一个恼人的问题javah生成 JNI 头文件 如果该类使用了第3方包 例如 org opencv core Mat 则javah会显示找不到 org opencv core Ma