Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BridJ:无法获取方法的地址_Java_Native_Bridj - Fatal编程技术网

Java BridJ:无法获取方法的地址

Java BridJ:无法获取方法的地址,java,native,bridj,Java,Native,Bridj,BridJ找不到共享库的方法。我需要帮助了解原因 该库是由jnavior生成的 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)

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

该库是由jnavior生成的

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);
    ...
但是成功地找到了方法
CreateClass


这是为什么?

此错误消息表示有一个方法已在标头中声明,但未在库中实现。请验证JNaboror所引用的库中是否实际实现了
DeleteClass()

我认为这是JNarator或BridJ的错误,因为当我像BridJ所描述的文档那样手动实现库时,它现在运行良好。您的库类缺少
@library(“Mobileclient”)
注释。这只是复制粘贴问题吗?
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)