我在C中做了两个简单的函数(设置并返回一个int)
eclipse(
Android项目).我用
ndk-build生成一个.so.我如何在Xamarin上使用这个.so,并在Xamarin.Android项目上消耗这两个函数?
谢谢!
解决方法
假设我们有一个名为MyTest.so的共享库,我们想在Xamarin.Android项目中使用它. MyTest.so由一个函数组成
int MyTest_GetValue();
现在,我们需要在Xamarin.Android项目上使用这个功能.以下是成功的步骤:
步骤1:在Xamarin.Android项目中创建一个名为lib和子文件夹armeabi的新文件夹.复制了我的.so库,以便在armeabi文件夹内使用,如here所示
步骤2:设置library.so(导入的库)的属性将操作建立到“AndroidNativeLibrary”,并复制到输出到“始终复制”.
步骤3 :(在Xamarin.Android类中工作,例如:MainActivity.cs)
>通过“使用System.Runtime.InteropServices;”来包含命名空间InteropServices
>使用项目中的标准DllImport导入本地库,如下所示:
[的DllImport( “MyTest.so”)]
public extern static int MyTest_GetValue(); //具有精确的函数名称,类型& parso在.so Lib.
步骤4:在应用程序中使用上面的功能(MyTest_GetValue()).
例如:
int value = MyTest_GetValue();
Console.Writeline(value.ToString());
任务完成! :D