Xamarin:使用NDK构建的.so

Sau*_*ran 12 java-native-interface build android-ndk xamarin

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

谢谢!

Sau*_*ran 15

假设我们有一个名为MyTest.so的共享库,我们想在Xamarin.Android项目中使用它.MyTest.so由一个函数组成

int MyTest_GetValue();

现在,我们需要在Xamarin.Android项目中使用此功能.以下是成功的步骤:

步骤1:在名为lib和子文件夹armeabi的Xamarin.Android项目中创建一个新文件夹.在armeabi文件夹内使用复制我的.so库作为说明在这里

步骤2:设置library.so(导入的库)的属性将操作构建到"AndroidNativeLibrary",将Copy复制到"始终复制".

第3步:(在Xamarin.Android类中工作,例如:MainActivity.cs)

  • 通过"using System.Runtime.InteropServices;"包含命名空间InteropServices.

  • 使用项目中的标准DllImport导入本机库,如下所示:[DllImport("MyTest.so")] public extern static int MyTest_GetValue(); //在.so Lib中具有精确的功能名称,类型和参数.

第4步:在应用程序中使用上面的函数(MyTest_GetValue()).

例如:

int value = MyTest_GetValue();

Console.Writeline(value.ToString());

任务完成!:d