你如何在Xamarin VS2015中引用C ++动态Android库?

时间:2016-09-09 20:48:57

标签: xamarin xamarin.android

我在VS2015中创建了一个Xamarin项目MyApp。这最终会为Android创建一系列项目,包括MyApp.Droid。我可以在我的Android设备上构建和部署这个项目。

接下来,我创建了一个共享的C ++动态共享库(Android)项目MyShared。当我尝试将此项目添加为MyApp.Droid中的引用时,它会报告一个错误,即只能将.dll或.exe文件类型添加为引用而不是.so类型。

想知道是否有不同的方法将本机库项目添加为依赖项。问候。

1 个答案:

答案 0 :(得分:0)

Xamarin.Android支持通过标准 PInvoke 机制使用本机库。

您需要定义DllImport C#属性/签名,有各种工具,如SWIG,PInvoker Visual Studio Addin,Mono的CppSharp等,可以帮助完成此步骤。

(就我个人而言,我使用的是Mono的CppSharp,但根据你的C ++库中的类/方法/函数的数量,它可能有点过分。)

  

要在Xamarin.Android项目中与本机库互操作,您需要做的就是为要调用的现有代码创建一个DllImport函数声明,运行时将处理其余的。设置EntryPoint以指定要在本机代码中调用的确切函数。