私のプロジェクトの 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で上記のすべてを行っています。