lonely-lonely 2022-05-06 16:00 采纳率: 0%
浏览 81

java 调用自己编译so库文件,声明库中函数的类报错无法初始化该类

linux 编译so库文件,供java调用,java声明库中函数的类如下

package com.xxxx.jni;


public class GgoSdk {

    static {
        System.load("/home/server/libs/libGgoSdkjni.so");
    }
    public native int GgoInit(String inFile, String outFile, boolean beStandard, int[] checkAttr, String cdzxlc);
}

java调用类如下:

GgoSdk ggoSdk = new GgoSdk();
ggoSdk.GgoInit(test.getFile(), "", false, checkAttr, cdzxlc);

编译so库对应的方法定义如下:

extern "C" JNIEXPORT jint JNICALL Java_com_xxxx_jni_GgoSdk_GgoInit(JNIEnv * env, jobject obj, jstring inFilePath, jstring outFilePath, jboolean standardGather, jintArray configAttr, jstring cdzxlc)

运行报错如下:
java.lang.NoClassDefFoundError: Could not initialize class com.xxxx.jni.GgoSdk

有没有哪位遇到过,指导一下,或者是不是我java调用so的方式有错?

  • 写回答

4条回答 默认 最新

  • 於黾 2022-05-06 16:14
    关注

    xxxx是个啥,是你刻意隐去了,还是代码里就写的这玩意

    评论

报告相同问题?

问题事件

  • 创建了问题 5月6日