Подтвердить что ты не робот

Xamarin: используйте NDK-built.so

Я сделал две простые функции (set и return int) в eclipse (проект Android) в C. Я использовал ndk-build для создания .so. Как я могу использовать этот .so на Xamarin и использовать эти две функции в моем проекте Xamarin.Android?

Спасибо!

4b9b3361

Ответ 1

Предположим, что у нас есть общая библиотека под названием MyTest.so, и мы хотим использовать ее в проекте Xamarin.Android. MyTest.so состоит из функции

int MyTest_GetValue();

Теперь мы должны использовать эту функцию в проекте Xamarin.Android. Ниже приведены шаги для достижения успеха:

Шаг 1. Создайте новую папку внутри проекта Xamarin.Android под названием lib и sub-folder armeabi. Скопировал мою .so-библиотеку, которая будет использоваться внутри папки armeabi, как указано здесь

Шаг 2. Задайте свойства library.so(импортированная библиотека). Постройте действие в "AndroidNativeLibrary" и скопируйте на вывод "Всегда копировать".

Шаг 3: (Работа в классе Xamarin.Android, например: MainActivity.cs)

  • Включить пространство имен InteropServices через "using System.Runtime.InteropServices;"

  • Используйте стандартный проект DllImport в проекте для импорта родной библиотеки, как показано ниже: [DllImport ( "MyTest.so" )] public extern static int MyTest_GetValue();//с точным именем, типом и параметрами Functtion в .so Lib.

Шаг 4: Используйте функцию выше (MyTest_GetValue()) в приложении.

Пример:

int value = MyTest_GetValue();

Console.WriteLine(value.ToString());

Миссия выполнена!: D