C で Eclipse (Android プロジェクト) に 2 つの単純な関数 (int を設定して返す) を作成しました。ndk-build を使用して .so を生成しました。Xamarin でこの .so を使用し、Xamarin.Android プロジェクトでこれら 2 つの関数を使用するにはどうすればよいですか?
ありがとう!
C で Eclipse (Android プロジェクト) に 2 つの単純な関数 (int を設定して返す) を作成しました。ndk-build を使用して .so を生成しました。Xamarin でこの .so を使用し、Xamarin.Android プロジェクトでこれら 2 つの関数を使用するにはどうすればよいですか?
ありがとう!
MyTest.so という共有ライブラリがあり、それを Xamarin.Android プロジェクトで使用するとします。MyTest.so は関数で構成されています
int MyTest_GetValue();
ここで、Xamarin.Android プロジェクトでこの関数を使用する必要があります。成功するための手順は次のとおりです。
手順 1: Xamarin.Android プロジェクト内に、lib という名前の新しいフォルダーとサブフォルダー armeabi を作成します。ここに記載されているように、私の.soライブラリをarmeabiフォルダー内で使用するようにコピーしました
ステップ 2: library.so (インポートされたライブラリ) Build アクションのプロパティを「AndroidNativeLibrary」に設定し、Copy to output を「Always Copy」に設定します。
ステップ 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