问题标签 [jnienv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5617 浏览

java - 制作系统应用时无法加载.so库文件

我创建了一个应用程序,它将是一个System Application。当我正常安装应用程序(不是系统应用程序)时,“.so”文件正在加载。但是,当我通过将 apk 放入 /system/app/ 使其成为系统应用程序时,出现以下错误

我对此做过的研究——

似乎“.o”和“.so”文件位于 /system/lib/ 和 /vendor/lib/ 中。

即使将文件添加到各自的目录后,仍然无法加载库。

任何帮助,将不胜感激。

0 投票
1 回答
521 浏览

java - 将调试器附加到由 JNI_CreateJavaVM 创建的 JVM

这是在 Ubuntu 12.04/Java 7、64 位

致力于为 WebkitGtk 版本 2 创建 java 绑定的项目。我对 WebkitGTK 的主要兴趣是 DOM 访问和操作,而不是仅仅显示网页。对于 V2,WebkitGtk 团队更改了允许通过扩展访问 DOM 的架构。扩展由 WebKitWebProcess 加载,这是一个在 webkit 启动时触发的单独进程。

我控制住了大部分。我的扩展正在加载,JVM 已启动,我的 java 类正在加载,并且大部分都按预期工作。现在我的调试技术基本上是 println 语句和/或日志语句。

想知道我是否可以附加一个 java 调试器,以便我可以更轻松地调试 java 代码。如果我运行 jps 命令,WebKitWebProcess 的 PID 会出现。所以有人知道这个进程有JVM。首选的调试器将是 eclipse。

基本上它归结为如何附加 java 调试器,其中使用 JNI_CreateJavaVM 盯着 VM 并且进程已经在运行。

0 投票
1 回答
1949 浏览

c++ - JNI_CreateJavaVM() 以退出代码 1 终止

我正在尝试使用 JNI 从 C++ 调用 Java 方法。为此,我已经安装了jdk1.7.0_51,链接到jdk1.7.0_51\lib\jvm.lib,包括jdk1.7.0_51\includejdk1.7.0_51\include\win32。在 Visual Studio 2012 中使用以下代码我尝试创建一个 Java vm 对象 - 但该函数始终以退出代码 1 终止我的应用程序(该函数不返回 1:我的程序完全终止并发送退出代码 1)。

操作系统: Windows 7 (x64)

编译器: Visual Studio 2012(x86/Win32 项目)

Java VM: jdk1.7.0_51、i586(在我看来应该没问题,因为我正在为 x86 编译 - 否则与 jvm.lib 的链接将不起作用)

我已经尝试使用两者:jdk1.7.0_51\jre\bin\client\jvm.dll以及jdk1.7.0_51\jre\bin\Server\jvm.dll- 具有相同的结果(但我不完全确定有什么区别)。

任何想法和建议将不胜感激。

0 投票
1 回答
1009 浏览

android - 方法 'GetArrayLength'/'GetByteArrayRegion' 无法在 JNI C 文件中解析

尝试在我的一个 JNI C 文件中构建我的 Eclipse Android 项目时出现以下错误。

我只是按如下方式调用 GetArrayLength/GetByteArrayRegion:

有谁知道出了什么问题?该项目在另一台 PC 上成功构建。

谢谢。

0 投票
1 回答
1590 浏览

java - 从 xcode 中找不到 JNI 标头

安装 Java 7 后,突然 xcode 无法编译我的项目说 jni.h 文件未找到错误。我尝试使用“rm”命令手动删除 java 7。如果我在 xcode 项目构建设置中使用以下路径提供编译器标志: "-I/System/Library/Frameworks/JavaVM.framework/Headers/" ,它编译得很好。我的系统是 Mac OSX 10.9。

0 投票
1 回答
383 浏览

java - 如何在 C++ 中实现观察者模式,在 JNI 中调用 Java 方法

我有在 C++ 中实现观察者模式的代码。我创建了类似于 C++ 代码的 Java JNI 代码来注册观察者。当我在 Java 中注册一个观察者时,它会调用一个native在 C++ 中创建一个监听器的方法。

我希望 C++ 中的方法调用调用我注册的 Java 观察者中的等效方法。我通过将 传递给 C++ 中的观察者类为此创建了代码JNIEnv,但我听说这不安全。这种类型的实施是否有最佳实践?

0 投票
1 回答
1493 浏览

java - eclipse/java -- java.lang.UnsatisfiedLinkError: java.library.path 中没有 ndbclient

这似乎是一个非常简单的问题,我希望得到一个简单的答案。我已经阅读了很多关于此的帖子,但还没有找到解决方案。

这是一个简单的程序:

这会产生以下错误:

我使用以下参数修改了 java.library.path。这条路径确实有效并且包含库。

lib目录包含:

我使用的是 64 位操作系统:

然而 Eclipse 的 32 位版本:

我尝试加载的库来自 MySQL Cluster 5.6 的 64 位安装

任何想法表示赞赏!

谢谢!

0 投票
2 回答
6459 浏览

java - jni 调用 getClass 为作业返回 null

我在使用 JNI 从 C++ 代码进行 java 调用时遇到问题。我能够获取作业,但在作业上调用任何 API 都会失败。在挖掘了将近一天并与其他工作 Java API(我在代码中调用的 jobjects)进行比较时,我发现了一个不同之处。

下面的一段代码

prints cls obj is null 对于我看到问题的作业。

对于其他作业,调用不返回 null。

主要区别在于它是一个新添加的类,我似乎错过了一些可能导致此问题的东西。我一次又一次地重新检查,但没有得到任何明确的指标。

任何帮助表示赞赏。

0 投票
1 回答
107 浏览

android - 如何在 C++ 接口中传输我的代码

我想在使用JNI. 这是我的java代码

在使用 C 接口时,这给了我以下错误

我可以将 C++ 接口与 Jni 和本机 android 一起使用吗,任何示例都非常受欢迎

0 投票
1 回答
741 浏览

java - JNI - 向 C++ 发送大字节 [] 缓冲区

我正在尝试使用 JNI 将大型 java 缓冲区字节 [](例如 460800)发送到 C++ 函数。下面是示例代码:

在哪里

当我打印 buf_size 时,我得到了一些小的值,例如 2048。这意味着我在 JNI 函数中没有收到完整的缓冲区。我可以使用 JNI 发送的缓冲区大小是否有任何限制?知道为什么会发生吗?