Вопрос:

Xamarin: используйте встроенную NDK .so

build android-ndk java-native-interface xamarin

5986 просмотра

1 ответ

505 Репутация автора

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

Спасибо!

Автор: Saurav Aran Источник Размещён: 09.04.2013 08:12

Ответы (1)


15 плюса

505 Репутация автора

Решение

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

int MyTest_GetValue ();

Теперь нам нужно использовать эту функцию в проекте Xamarin.Android. Вот шаги, чтобы преуспеть:

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

Шаг 2: Задайте для свойства библиотеки.so (импортированная библиотека) действие «Создание» значение «AndroidNativeLibrary» и «Копировать» для вывода значения «Всегда копировать».

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

  • Включите пространство имен InteropServices, используя «System.Runtime.InteropServices;»

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

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

Например:

int value = MyTest_GetValue ();

Console.WriteLine (value.ToString ());

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

Автор: Saurav Aran Размещён: 09.04.2013 12:55
Вопросы из категории :
32x32