Xamarin:使用NDK构建的.so

时间:2013-04-09 08:12:18

标签: build android-ndk java-native-interface xamarin

我在C中的eclipse(Android项目)上创建了两个简单的函数(设置并返回一个int)。我使用ndk-build生成一个.so。我如何在Xamarin上使用这个.so并在我的Xamarin.Android项目中使用这两个函数?

谢谢!

1 个答案:

答案 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