私のプロジェクトの 1 つでは、ネイティブの C コードを自分のjava class
. このために、次の手順を実行しました。
私の Java クラスでは、プロジェクトに必要ないくつかのネイティブ メソッドを宣言しました。すなわち
public native String print(String pM,int len); public native int openPrint();
以下のようなライブラリファイルを開始しました
static { System.loadLibrary("print"); }
この後、Javaコードに関してヘッダーファイルを作成しました。
cファイルを作成し、上記のメソッドをcで実装しました
この後、ライブラリファイルを生成しました。つまり
libprint.so
、ndk-build
ライブラリファイルが正常に作成されました
libs->armeabi->libprint.so
そのJavaアプリケーションを実行するたびに、エラーが発生します
Exception in thread "main" java.lang.UnsatisfiedLinkError: no print in java.library.path
この問題を解決するにはどうすればよいですか。
libprint.so
この種のアプリケーションを他の Android 開発者に提供して、ネイティブ コールを実行せず、ファイルを作成せずにこのアプリケーションを作成できるようにしたい
つまり、アプリケーション開発者に独自の API を提供する必要があります。このために、JAR ファイルを作成する必要があります。java.class
、libprint.so
(共有ライブラリ)などを含む...
も含むJARファイルの作成方法libprint.so
..
私はEclipseとopen-jdk6を使用してubuntuで上記のすべてを行っています。