我在C中的eclipse(Android项目)上创建了两个简单的函数(设置并返回一个int)。我使用ndk-build生成一个.so。我如何在Xamarin上使用这个.so并在我的Xamarin.Android项目中使用这两个函数?
谢谢!
答案 0 :(得分:15)
假设我们有一个名为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&#34)] public extern static int MyTest_GetValue(); //具有完全功能名称,类型& .so Lib。中的参数
步骤4:在应用程序中使用上面的函数(MyTest_GetValue())。
例如:
int value = MyTest_GetValue();
Console.Writeline(value.ToString());
任务完成!:D