gpt4 book ai didi

java - BridJ:无法获取方法的地址

转载 作者:行者123 更新时间:2023-12-02 06:15:39 27 4
gpt4 key购买 nike

BridJ 找不到共享库的方法。我需要帮助来理解原因。

该库由 JNAerator 生成。

lib.so 的

mn -g:

         w _Jv_RegisterClasses
U _Unwind_Resume@@GCC_3.0
00004970 T _Z11CreateClassv
00004960 T _Z11DeleteClassPv
....

库的标题:

#ifdef __cplusplus
extern "C" {
#endif;
void* CreateClass(void);
void DeleteClass(void* hClass);
....

Java代码:

@Runtime(CRuntime.class) 
public class MobileclientLibrary {
static {
BridJ.register();
}
public static Pointer<? > CreateClass() {
return Pointer.pointerToAddress(CreateClass$2());
}
@Ptr
@Name("CreateClass")
protected native static long CreateClass$2();

public static void DeleteClass(Pointer<? > hClass) {
DeleteClass(Pointer.getPeer(hClass));
}
protected native static void DeleteClass(@Ptr long hClass);
...

在日志中运行此应用程序时:

Mar 12, 2013 2:13:53 PM org.bridj.BridJ log
INFO: Failed to get address of method protected static native void Mobileclient.MobileclientLibrary.DeleteClass(long)

但是方法CreateClass已成功找到。

这是为什么?

最佳答案

此错误消息意味着您的 header 中声明了一个方法,但未在您的库中实现。验证 DeleteClass() 实际上在 JNAerator 引用的库中实现。

关于java - BridJ:无法获取方法的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15358562/

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