gpt4 book ai didi

c++ - UnsatisfiedLinkError 关于在 ndk r15 类中初始化的静态成员

转载 作者:行者123 更新时间:2023-11-28 04:55:07 28 4
gpt4 key购买 nike

我遇到了一个关于 UnsatisfiedLinkError 的问题。

我的代码是:

class ClassA
{
public:
static const int MY_ENUM_1 = 0;
};

我使用 Android Studio 将我的代码构建为 .a.

然后我编写 .so 以通过 JNI 链接我的库的接口(interface)。

我成功构建了项目。但是它在运行时发生错误,

 java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZN12LaChenEngine14GraphicsSystem22VertexBufferAccessList12DYNAMIC_DRAWE

LaChenEngine 是命名空间。

GraphicsSystem是LaChenEngine中的命名空间。

VertexBufferAccessList 是我声明所有枚举的类。

DYNAMIC_DRAW 是 VertexBufferAccessList 类中的枚举之一。

是ndk的版本问题吗?

顺便说一下,我在 Windows 平台上开发我的库。

最佳答案

一个可能的原因是一个项目定义了一个extern "C" 函数,而另一个假设它是一个C++ 函数。更多信息:https://stackoverflow.com/a/1041880/755804

另一种猜测:检查该函数是否存在于您的 .so 中,如果不存在,找出它的位置。

一般来说,我将如何处理此类链接问题:我将从一个 hello-jni 应用程序开始,一次添加一个功能(另一个库、C++ 函数、 namespace 中的 C++ 函数等)

关于c++ - UnsatisfiedLinkError 关于在 ndk r15 类中初始化的静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47325762/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com