12

C で Eclipse (Android プロジェクト) に 2 つの単純な関数 (int を設定して返す) を作成しました。ndk-build を使用して .so を生成しました。Xamarin でこの .so を使用し、Xamarin.Android プロジェクトでこれら 2 つの関数を使用するにはどうすればよいですか?

ありがとう!

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 (インポートされたライブラリ) 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

于 2013-04-09T12:55:44.367 に答える