java-native-interface相关内容

我可以为Java本机接口(JNI)库设置环境变量吗?

我有一个跨平台的Java应用程序,它依赖于一些本机(C++)库来调用执行复杂科学计算的函数。使用JNI(使用SWIG生成的粘合代码)访问本机库。这些库访问用于配置和定位各种数据表等的几个环境变量。 我希望我的Java应用程序能够设置这些环境变量,至少在JNI库的上下文中是这样。如果Java提供了一种在它自己的外壳/上下文中设置环境变量的方法,这会很容易,但它没有。 similar questio ..

使用C++实现Android事件处理程序

我有一个用Java编写的布局设计,目前正在通过JNI移植到C++。在这一点上,我实际上已经完成了,但是我目前对于如何设置事件处理程序(例如setOnClickListener)感到困惑。我已经经历了the JNI specification,运气不太好。 如果有人能将下面的代码片段移植到C++或将我引向正确的方向(由于结果的代码量更合理),我将不胜感激。 public void ..
发布时间:2022-02-28 10:35:07 移动开发

链接JNI中的静电库

我是JNI新手。 我想将一个静电库(比如libfoo.a)链接到我正在创建的动态库。正在从我的Java类调用此动态库。 这可能吗?如果是,如何进行? gcc -I$JAVA_DIR/include -I$JAVA_DIR/include/linux -o libXY.so -shared jni/xy.c libFoo.a 推荐答案 Q:我想将一个静电库(比如说lib ..
发布时间:2022-02-25 09:03:46 Java开发

使用 JNI 将 float* 转换为 jfloatArray

我在我的 c++ 函数中获得了一个 float*,我需要将它转换为 jfloatArray 以返回我的 Java 代码. 如何将 float* 转换为 jfloatArray? 谢谢 解决方案 要将float*转换为jfloatArray,可以使用NewFloatArray, 您可以使用以下代码: 变量“数据"只是一个简单的例子,所以你可以使用你的代码. 另外,将 ..
发布时间:2022-01-25 21:55:41 Java开发

如何解决“致命:重定位仍然针对可分配但不可写的部分"?在使用Java本机接口时?

我正在尝试在 Java 代码中调用 C 函数.我有这个哈瓦代码. 公共类 JavaToC {公共本机 void helloC();静止的 {System.loadLibrary("HelloWorld");}公共静态无效主要(字符串[]参数){新的 JavaToC().helloC();}} .我编译了它,然后创建了头文件.然后制作下面的 HelloWorld.c 文件. #include ..
发布时间:2022-01-25 21:54:11 Java开发

Android JNI字符串加密/解密

我正在尝试在本机代码 C 中进行 aes 加密/解密.加密确实有效,但是当我尝试解密字符串时.它不会以原始字符串结尾.这是基于模式参数加密/解密的 JNI 方法: jbyteArray Java_com_example_hellojni_HelloJni_encrypt(JNIEnv* env,作业这个,jbyteArray srcData,金特模式){//获取字节长度int srcLen=(* ..
发布时间:2022-01-25 21:54:05 移动开发

Android can't load local libcrypto unsatisfied link错误

我需要在我的应用程序中运行比操作系统中的更新版本的 openssl.我能够修补和 android 源以编译更新版本,然后提取共享库以在我的应用程序中使用. 然后,我能够编译并链接我的本机代码,该代码仅需要较新版本的 openssl 中的函数与我的新共享库(较新的 openssl 的补丁有效). 我还能够创建一些按预期工作的 jni 函数,但只要我添加了仅在应用程序本地较新的 opens ..

如何避免Java中未使用的代码抛出NoClassDefFoundError

我正在进行的项目是一个支持两个不同平台的 API.在运行时,类路径中实际上只有两个平台中的一个可用. 在大多数情况下,我很容易就能编写出这样运行良好的代码 if (isPlatformOne()) {PlatformOne.doSomething();} 即使 PlatformOne 在运行时不存在,预先检查也意味着代码不会运行,不会抛出错误.这种技术适用于 VAST 的大多数情况,但是 ..
发布时间:2022-01-25 21:52:39 Java开发

执行任何 IO/流时 C++ JNI 崩溃/挂起

在尝试编译 C++ 代码以在 JAVA 端使用时,我似乎遇到了一个大问题.当我尝试做任何与 IO/Stream/Manipulation 相关的事情时,JVM 似乎崩溃了. 有时,就像我每 10 次运行应用程序时一样,JNI 100% 地处理所有 IO 内容.然后其他时间 JVM 崩溃或挂起. 我正在使用:Windows 10 x64、JAVA jdk1.8.0_102、Netbean ..
发布时间:2022-01-25 21:52:26 Java开发