12

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

谢谢!

4

1 回答 1

15

假设我们有一个名为 MyTest.so 的共享库,并且我们希望在 Xamarin.Android 项目中使用它。MyTest.so 包含一个函数

int MyTest_GetValue();

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

步骤 1:在 Xamarin.Android 项目中创建一个名为 lib 的新文件夹和子文件夹 armeabi。复制我的 .so 库以在 armeabi 文件夹中使用,如此处所述

第 2 步:将 library.so(导入库)的属性设置为“AndroidNativeLibrary”并将输出复制到“始终复制”。

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

  • 通过“使用 System.Runtime.InteropServices;”包含命名空间 InteropServices;</p>

  • 使用项目中的标准 DllImport 导入原生库,如下所示:

    [DllImport("MyTest.so")] 
    public extern static int MyTest_GetValue();// with exact Functtion Name, Type & Params in the .so Lib.
    

第 4 步:在应用程序中使用上述函数 ( MyTest_GetValue())。

例如:

int value= MyTest_GetValue();

Console.Writeline(value.ToString());

任务完成!:D

于 2013-04-09T12:55:44.367 回答