/system/libs/my_lib.so
ディレクトリからライブラリを正常にロードしました。このライブラリで定義されているC/C++関数を使用するにはどうすればよいですか?ライブラリを読み込むためのSystem.load
public class MainFrom extends Activity {
private static final String LOG_TAG = "MainFrom";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// How to use the functions of test_lib.so?
/*
java.lang.UnsatisfiedLinkError: stringFromC
String s1 = stringFromC(), s2 = stringFromCpp();
Log.w(LOG_TAG, stringFromC());
Log.w(LOG_TAG, stringFromCpp()); */
}
public native String stringFromC();
public native String stringFromCpp();
static {
try {
System.load("/system/lib/test_lib.so");
Log.i(LOG_TAG, "MainFrom. Success!");
} catch (UnsatisfiedLinkError e) {
Log.e(LOG_TAG, "MainFrom. UnsatisfiedLinkError");
}
}
}
stringFromC
とstringFromCpp
はtest_lib.so
あなたがアンドロイドNDKで.cppファイルをコンパイルするためにあなたのAndroid.mkファイルにLOCAL_CPPFLAGS := $(YOURMODULE_CPPFLAGS)
とでLOCAL_SRC_FILES := yourfile.cpp
を配置する必要があり
あなたのAndroid.mkファイルとも.Cと.CPPを共有することができますか? –
@NISHAnT共有するには?私はCyanogenを構築しています。私のテストライブラリは "外部"フォルダにあり、cとcppの使用法は "framesworks"フォルダにあります。可能であれば –
コードを共有してください。 –