问题标签 [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.
java - 制作系统应用时无法加载.so库文件
我创建了一个应用程序,它将是一个System Application。当我正常安装应用程序(不是系统应用程序)时,“.so”文件正在加载。但是,当我通过将 apk 放入 /system/app/ 使其成为系统应用程序时,出现以下错误
我对此做过的研究——
似乎“.o”和“.so”文件位于 /system/lib/ 和 /vendor/lib/ 中。
即使将文件添加到各自的目录后,仍然无法加载库。
任何帮助,将不胜感激。
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 并且进程已经在运行。
c++ - JNI_CreateJavaVM() 以退出代码 1 终止
我正在尝试使用 JNI 从 C++ 调用 Java 方法。为此,我已经安装了jdk1.7.0_51
,链接到jdk1.7.0_51\lib\jvm.lib
,包括jdk1.7.0_51\include
和jdk1.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
- 具有相同的结果(但我不完全确定有什么区别)。
任何想法和建议将不胜感激。
android - 方法 'GetArrayLength'/'GetByteArrayRegion' 无法在 JNI C 文件中解析
尝试在我的一个 JNI C 文件中构建我的 Eclipse Android 项目时出现以下错误。
我只是按如下方式调用 GetArrayLength/GetByteArrayRegion:
有谁知道出了什么问题?该项目在另一台 PC 上成功构建。
谢谢。
java - 从 xcode 中找不到 JNI 标头
安装 Java 7 后,突然 xcode 无法编译我的项目说 jni.h 文件未找到错误。我尝试使用“rm”命令手动删除 java 7。如果我在 xcode 项目构建设置中使用以下路径提供编译器标志: "-I/System/Library/Frameworks/JavaVM.framework/Headers/" ,它编译得很好。我的系统是 Mac OSX 10.9。
java - 如何在 C++ 中实现观察者模式,在 JNI 中调用 Java 方法
我有在 C++ 中实现观察者模式的代码。我创建了类似于 C++ 代码的 Java JNI 代码来注册观察者。当我在 Java 中注册一个观察者时,它会调用一个native
在 C++ 中创建一个监听器的方法。
我希望 C++ 中的方法调用调用我注册的 Java 观察者中的等效方法。我通过将 传递给 C++ 中的观察者类为此创建了代码JNIEnv
,但我听说这不安全。这种类型的实施是否有最佳实践?
java - eclipse/java -- java.lang.UnsatisfiedLinkError: java.library.path 中没有 ndbclient
这似乎是一个非常简单的问题,我希望得到一个简单的答案。我已经阅读了很多关于此的帖子,但还没有找到解决方案。
这是一个简单的程序:
这会产生以下错误:
我使用以下参数修改了 java.library.path。这条路径确实有效并且包含库。
lib目录包含:
我使用的是 64 位操作系统:
然而 Eclipse 的 32 位版本:
我尝试加载的库来自 MySQL Cluster 5.6 的 64 位安装
任何想法表示赞赏!
谢谢!
java - jni 调用 getClass 为作业返回 null
我在使用 JNI 从 C++ 代码进行 java 调用时遇到问题。我能够获取作业,但在作业上调用任何 API 都会失败。在挖掘了将近一天并与其他工作 Java API(我在代码中调用的 jobjects)进行比较时,我发现了一个不同之处。
下面的一段代码
prints cls obj is null 对于我看到问题的作业。
对于其他作业,调用不返回 null。
主要区别在于它是一个新添加的类,我似乎错过了一些可能导致此问题的东西。我一次又一次地重新检查,但没有得到任何明确的指标。
任何帮助表示赞赏。
android - 如何在 C++ 接口中传输我的代码
我想在使用JNI
. 这是我的java代码
在使用 C 接口时,这给了我以下错误
我可以将 C++ 接口与 Jni 和本机 android 一起使用吗,任何示例都非常受欢迎
java - JNI - 向 C++ 发送大字节 [] 缓冲区
我正在尝试使用 JNI 将大型 java 缓冲区字节 [](例如 460800)发送到 C++ 函数。下面是示例代码:
在哪里
当我打印 buf_size 时,我得到了一些小的值,例如 2048。这意味着我在 JNI 函数中没有收到完整的缓冲区。我可以使用 JNI 发送的缓冲区大小是否有任何限制?知道为什么会发生吗?