当我尝试打开Eclipse时,弹出对话框指出:
无法加载JNI共享库"C:/JDK/bin/client/jvm.dll"`.
在此之后,Eclipse强制关闭.
以下是我想提出的几点:
下载32位版本是我唯一想做的事情.
会有什么建议来解决这个问题?
如何判断我的应用程序运行的JVM是32位还是64位?具体来说,我可以访问什么功能或偏好来在程序中检测到这个?
在玩这个谜题(这是一个Java关键字琐事游戏)时,我遇到了native关键字.
Java中的native关键字用于什么?
我知道在Java中进行JNI调用时"跨越边界"很慢.
不过,我想知道什么是它,使得它慢?在进行使其速度变慢的JNI调用时,底层jvm实现会做什么?
可能重复:
无法加载JNI共享库(JDK)
我无法打开Eclipse,因为我得到一个警告说
无法加载JNI共享库C:\ Program Files(x86)\ eclipse\jre\bin\client\jvm.dll
我在YouTube上找到了一种解决方案,Eclipse无法加载JNI库修复.
他说你只需要下载一个JRE 7文件夹.然后我就不得不更换
C:\Program Files (x86)\Java\jre7\bin\server\jvm.dll用C:\Program Files (x86)\eclipse\jre\bin\client\jvm.dll.
但是JRE 7的链接在哪里?
我正在尝试使用android NDK.
有没有办法将int[]在JNI中创建的数组(在我的情况下是一个)返回给Java?如果是这样,请提供一个JNI函数的快速示例.
-谢谢
带NDK的 Android 支持C/C++代码和iOS,Objective-C++也支持,那么我如何用Android和iOS之间共享的本机C/C++代码编写应用程序?
与JNI相比,JNA似乎更容易调用本机代码.在什么情况下你会使用JNI而不是JNA?
我jstring通过使用JNI 将URL字符串从Java传递到C代码作为数据类型.我的库方法需要一个char *url.
我如何转换jstring的char *?
PS:在C中使用jcharArray有什么好处吗?(即char []在本机方法中传递而不是字符串)
我的make文件有什么问题?
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := foo
LOCAL_SRC_FILES := foo.c
LOCAL_EXPORT_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
foo.c的
#include <string.h>
#include <jni.h>
#include <android/log.h>
#define LOG_TAG "foo"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
void test() {
LOGI("test");
}
Run Code Online (Sandbox Code Playgroud)
NDK建造
foo.c:9: undefined reference to `__android_log_print'
Run Code Online (Sandbox Code Playgroud)