首先,here是您正在尋找的示例Android項目插件。
知道如何自己做這件事非常重要。
過去,這是很難做到過,但最新的Android 工作室使得它更容易現在使用C/C++或容易產生。所以庫。更新Android Studio到最新版本,然後按照以下步驟創建一個C++插件。
.Create Android Studio中
。檢查一個新的項目包括C++詢問服務啓用C++。
。對下拉菜單,檢查C++ 11的C++標準下拉菜單上。您將需要C++ 11來實際使用最有用的C++功能。另外,如果你需要它們,啓用異常或frtti。
就是這樣。
當你創建插件:
調試庫應該是:
\app\build\intermediates\cmake\debug\obj\
釋放庫應該是:
\app\build\intermediates\cmake\debug\obj\
如果你只看到調試但不是插件的發佈版本,請檢查here以瞭解如何使其顯示。你是在Android上得到DllNotFoundException
可能的原因:
。你沒包住C/C++函數各地extern "C"
。您必須對.cpp文件中的每個功能執行此操作,或者您在.h文件中的功能中執行此操作。
。你把插件放在錯誤的Unity文件夾中。
在Unity項目中,在<ProjectDirectory>\app\build\intermediates\cmake\release\obj
處生成的armeabi-v7a和x86插件應放置在Assets\Plugins\Android\libs\armeabi-v7a\
和Assets\Plugins\Android\libs\x86\
處。
確保拼寫正確。有關詳細信息,請參閱this。
。您從C#端正確加載它。
假設該插件的名稱是libScreenshot.a,做不包括的lib前綴,也做不加載時添加.a
。
[DllImport("Screenshot", CallingConvention = CallingConvention.Cdecl)]
public static extern void takeScreenshot();
請從異常中發佈完整的堆棧跟蹤,而不僅僅是名稱,因爲這應該指示哪個庫丟失。 –
https://gist.github.com/spixy/df250fbb22f6f1c7c57de7ee0a6a60fc – user2576489
您是否看到我離開的答案? – Programmer