【问题标题】:Import Android JNI shared library ".so" into Java Netbeans project?将 Android JNI 共享库“.so”导入 Java Netbeans 项目?
【发布时间】:2024-01-21 09:46:02
【问题描述】:

我有一个共享库,一个带有 JNI 接口的 .so 库。 .so 库是在 Visual C++ 2017 中构建的,支持 Android。现在我想将 .so 库导入 Java Netbeans 项目 - 可以吗?

【问题讨论】:

  • 如果它是为 Android 构建的,它可能是为 ARM 或类似的东西编译的。 ARM 库不能在 PC 上运行,除非它们也有 ARM CPU。
  • 感谢您的回答,我发现了这个视频如何在 Eclipse 中导入 Visual C++ JNI dll,Eclipse 可以选择导入本机库位置,但 Netbeans 有相同的功能吗? youtube.com/watch?v=R9oqGU6U_tI

标签: java android netbeans java-native-interface shared-libraries


【解决方案1】:

嗯,我通过这些帖子得到了它:

http://electrofriends.com/articles/jni/jni-part1-java-native-interface/

http://electrofriends.com/articles/jni/part-2-jni-visual-studio-setup-dll-project/

Including Native Library in Netbeans

1.- 在 Visual Studio 中使用 DLL 项目或 C++ 库创建 JNI 库 .dll 或 .so 对于 Android,没有空项目和 JDK 参考:

a.- 在 Visual Studio 中转到 Project->Properties。

b.- 在左侧,选择 C/C++,在 Additional Include Directories 中添加 jdk include 和 win32 路径。 如果你已经在c程序文件中安装了jdk那么路径是

C:\Program Files\Java\jdk1.6.0_18\include; C:\程序 文件\Java\jdk1.6.0_18\include\win32

如果 JDK 是 64 位平台,则 DLL 必须编译为 x64。

2.- 在 Netbeans 中:

a.-右键单击项目属性

b.- 点击运行

c.- 在 VM Options TextBox 中添加:

-Djava.library.path="C:\Your Directory where Dll is present".

c.- 最后调用C++方法:

System.loadLibrary("JNILibreria");

完整的 dll 名称例如 JNILibreria.dll。

【讨论】: