我對(duì) Unity 開(kāi)發(fā)還很陌生。我遵循了許多關(guān)于在 Unity 中使用本機(jī)插件的不同教程。那些包含編譯 .dll 庫(kù)并在編輯器中運(yùn)行它們的程序工作得很好。但是使用 android NDK 編譯 .so 文件并在 Unity 中的 C# 腳本中調(diào)用它似乎是不可能的。即使是這個(gè)簡(jiǎn)單的例子,它也總是拋出 DllNotFoundException。此示例中的庫(kù)不包含任何其他內(nèi)容,因此問(wèn)題不可能是我缺少附加庫(kù)。我正在使用 Unity 2018.3.7f1,并確保這些庫(kù)被標(biāo)記為與 Android 兼容,并且具有適用于 Android 的構(gòu)建集。我的機(jī)器是Windows 10。[編輯]:我試圖將它部署在三星 Galaxy s7 上。該設(shè)備是 64 位的,所以我必須在 Unity 編輯器中進(jìn)行一些更改(在播放器設(shè)置中選擇 IL2CPP 等)。我知道 Unity 編輯器總是會(huì)拋出錯(cuò)誤,因?yàn)樗鼰o(wú)法檢測(cè)到 Android 插件。然而,編輯器和設(shè)備上的結(jié)果是一樣的,就是一個(gè)空的藍(lán)屏。我認(rèn)為 DllNotfound 是問(wèn)題所在,但現(xiàn)在我意識(shí)到情況可能并非如此。
1 回答

紫衣仙女
TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
您是否嘗試在編輯器中運(yùn)行?如果是,它將拋出異常。嘗試使用 Build in Mobile
或者您必須添加平臺(tái)相關(guān)的編譯代碼才能在編輯器中正常運(yùn)行
#if !UNITY_EDITOR
[DllImport("native")]
private static extern float add(float x, float y);
#endif
void OnGUI ()
{
float x = 3;
float y = 10;
#if !UNITY_EDITOR
GUI.Label (new Rect (15, 125, 450, 100), "adding " + x + " and " + y + " in native code equals " + add(x,y));
#endif
}
- 1 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報(bào)
0/150
提交
取消