1
我給出了一個用於訪問名片掃描器的DLL和JNI包裝器。JNI包裝的DLL只在從默認包中調用時才起作用
到目前爲止,我只能在所有類都在默認包中時調用API。當我嘗試將課程移到其他軟件包時,我得到一個UnsatisfiedLinkError
。
直到現在我還沒有JNI的經驗,並想知道是否需要重寫包裝器,以便能夠以不同的方式組織項目。我不能做的是使用默認包,因爲這意味着我將在那裏放置全部。
的包裝看起來是這樣的:
public final class Wrapper {
private native int CRTK_Init(int[] lphRTK);
private int m_hRTK;
private int m_hRTKDB;
static
{
System.loadLibrary("crtk_jni");
}
public Wrapper() {
m_hRTKDB = 0;
int[] pRTK = new int[1];
CRTK_Init(pRTK); // UnsatisfiedLinkError here
m_hRTK = pRTK[0];
}
}
我想我們在這裏需要一些源代碼。直覺:你的JNI包裝器有問題。 – GhostCat
@JornVernee更新了代碼片段 – paul