JNI java -to- c++调用在Eclipse中构建时可以工作,但在通过命令行构建时则不行



函数调用在.so文件中实现。当我从命令行构建时,当代码试图从Java调用本机函数(C-to-Java工作正常)时,我会得到UnsatisfiedLinkError。最奇怪的是,当我外部调用并获得指向它们的指针时,指针是有效的,然后UnsatisfiedLinkError仍然发生。

我想主要的问题是,Eclipse做了哪些命令行做不到的事情(反之亦然)?我不知所措,需要让这个工作,因为其他开发人员和构建服务器无法通过Eclipse构建。

另一个问题是,当使用这种机制(在Android)时,如何找到和调用函数?我读了一点这方面的资料,但没有什么能帮助我解决这个问题。

因为它在Eclipse中工作,所以我确信我的JNI命名约定是正确的。

我在网上查阅了相当广泛的资料,但似乎找不到一个好的答案。

供参考,.so文件包含在APK文件中(看起来几乎相同),它是唯一的。so文件。

如何编译您的.so文件?您是否将-fvisibility=hidden标志传递给g++(如果您使用g++进行编译)?-fPIC ?

相关内容

  • 没有找到相关文章

最新更新