1 つのネイティブ ライブラリを複数のアプリケーションで使用したい。ライブラリは Android ビルド システムを介してコンパイルされ、現在 /system/lib/ に配置されています。System.LoadLibrary("libexample") を介してアプリケーションにロードできます。しかし、次のように宣言する必要があるライブラリ内のメソッド
JNIEXPORT jstring JNICALL Java_application1_MainActivity_method1
ライブラリは複数のアプリケーションで使用する必要があるため、使用できません。もちろん、このいくつかのアプリケーションには独自の名前が付いています。だから私は自分のメソッドに同じように名前を付けようとしました
JNIEXPORT jstring JNICALL method1
そして電話する
public native String method1(String string);
しかしもちろん、私のアプリケーションは Java_application1_MainActivity_method1 としてそれを見つけようとしています
このメソッドを呼び出す方法、またはどのように名前を付ける必要がありますか?
更新しました:
私はこのチュートリアルを使用してプロジェクトを完成させようとしました。ネイティブメソッドを使用するためのライブラリを作成しました:
package com.example.mylib;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MyClass extends Activity {
public native static String MyMethod(String string);
static {
System.loadLibrary("nativeLibrary");
}
}
次に、アプリケーションでそれを使用しようとしています:
// Some no interesting inclusions
import com.example.mylib.MyClass;
public class MainActivity extends ListActivity {
// Some no interesting code.
MyMethod(file.getAbsolutePath())
//Some no interesting code
}
そして、それは私が必要とするように働いています! しかし今、私はインポート com.example.mylib.MyClass;を混乱させました。日食では「 使用されたことはありません」。そして、この「 Is Library 」プロジェクトでイメージを作成すると、最新のものは解決されません。何か案が?