java-native-interface相关内容
长话短说:我有一个可执行的 jar,它调用依赖于 lib.dll 的 jni.dll.我得到了非常可怕的 UnsatisfiedLinkError. 这个答案非常接近,但根据我的经验,它无法解决问题.即使在 java.library.path 中指定了 dll 所在的文件夹,它也不起作用.我还必须更改 Windows PATH 环境变量.其实Windows上默认的java.library.p
..
在我的 Java 代码中,我有一个 2D 浮点数组 float[x][4] floatArray.这里 x 可以介于 1 和 25 之间.我必须通过 JNI 将这个 2D 浮点数组传递给 C++ 方法.我的 JNI 方法是 jboolean MyJNIMethod(JNIEnv * env, jobject obj, jobjectArray myArray){//如何将此 myArray 转换
..
我有一个 JNI 回调: void callback(Data *data, char *callbackName){JNIEnv *env;jvm->AttachCurrentThread((void **)&env, NULL);/* 开始有用的代码*//* 结束有用的代码 */jvm->DetachCurrentThread();} 当我像这样运行它(空的有用代码)时,我遇到了内存泄漏.
..
当我使用 JNI 方法构建一个 java 对象时,为了将它作为参数传递给我使用 JNI 调用 API 调用的 java 方法,我如何管理它的内存? 这是我的工作: 我有一个 C 对象,它有一个比 free() 更复杂的析构方法.这个 C 对象要与一个 Java 对象关联,一旦应用程序完成了 Java 对象,我就不再需要 C 对象了. 我正在像这样创建 Java 对象(为清楚起见,
..
有一段代码在 android 4.1.2 上运行良好,但在 4.0.3 上却不行,崩溃日志是 4.0.3 我收到 UnsatisfiedLinkError 异常 请指导我,谢谢 02-22 12:57:09.319: D/dalvikvm(1312): 试图加载 lib/data/data/com.kosh.android/lib/libsqliteX.so 0x41056f4802
..
..
..
如何将 jstring (JNI) 转换为 std::string (c++) 与 utf8 字符? 这是我的代码.它适用于非 utf8 字符,但适用于 utf8 字符. std::string jstring2string(JNIEnv *env, jstring jStr){const char *cstr = env->GetStringUTFChars(jStr, NULL);st
..
假设我将 Sun 的 JVM 嵌入到 C++ 应用程序中.通过 JNI,我调用了一个 Java 方法(我自己的),该方法又调用了我在共享库中实现的本地方法. 如果这个本地方法抛出 C++ 异常会发生什么? 编辑:编译器是 gcc 3.4.x,jvm 是 sun 的 1.6.20. 解决方案 在 JNI 文献中,exception 这个词似乎专门用于指代 Java 异常.本机代码
..
使用 JNI,我们可以将自定义数据类型从 Java 传递到 C(反之亦然)吗?我看到原始数据类型到 C 中的类型的映射,但不太确定我们是否可以发送我们自己的数据类型(例如发送或返回一个 Employee 对象或其他东西!). 解决方案 如果您要对很多对象执行此操作,则最好使用 Swig 之类的东西.您可以使用 jobject 类型来传递自定义对象.语法不好,也许有更好的写法. 员工对
..
我需要创建一个 android 应用程序,它由 Unity3d(动画等)和 AndroidSDK 上编写的部分组成(通过 androidSDK,我的意思是很少有用 java、清单和资源编写的活动) 事实上我已经有了这些部分(至少模拟已经准备好了=))我不知道如何在它们之间进行通信. 我已经阅读了很多关于 unity3d android 集成的文章(主要是关于“插件"的东西)并且无法理解
..
我正在使用一个在库代码中调用 JNI_CreateJavaVM 函数的库.但是,我还需要一些 JNI Wrappings 并且我需要调用相同的函数 JNI_CreateJavaVM 以将 JNIEnv* 获取到我的应用程序. 但是第二次调用失败了. 有什么办法吗? 该库不支持获取或设置在该库中创建的JNIEnv*. 解决方案 你不能从同一个进程创建多个 JVM: 从
..
..
..
我正在尝试将结构作为指针从 JNI 传递到 Java,以便以后能够将其从 Java 传递回 JNI.我已阅读此主题:通过 JNI 在 C 和 Java 之间传递指针,但我没有成功. 我有一个相当复杂的结构:struct myStruct_s myStruct; 在 Java 中,我调用一个 JNI 函数来初始化结构并返回一个 long(指向结构的指针): JNIEXPORT jlon
..
..
..
我目前正在进行的项目需要我编写跨平台程序实现的 android 部分. 通过 android-ndk 构建了一组核心功能并将其包含在我的应用程序中.我发现本机代码中发生的任何异常/崩溃充其量只会不时报告.发生错误时,我会出现以下行为之一: 发生堆栈跟踪/内存转储并写入日志文件.程序消失(设备上没有给出关于为什么应用程序突然不再存在的指示). 没有任何堆栈跟踪/转储或其他迹象表明本机代
..
假设在 C++ 端,我的函数采用类型为 jstring 的变量,名为 myString.我可以将其转换为 ANSI 字符串,如下所示: const char* ansiString = env->GetStringUTFChars(myString, 0); 有没有办法获得 const wchar_t* unicodeString = ... 解决方案 如果这对某人有帮助...我
..
..