私はAndroidを使用していて、アプリでネイティブコードを使用しようとしています。
アプリケーションコードのスケルトンは次のとおりです。
package A.B;
/*
import statements
*/
public class C extends Activity{
public void onCreate(...){
....
foo();
....
}
public int foo(){
.....
data(a, b);
.....
}
public int data(a, b){
GetValues(a, b);
}
static{
System.loadLibrary("baz");
}
public native int GetValues(int[] a, int b);
}
ネイティブメソッドのシグネチャは次のようになります。
JNIEXPORT jint JNICALL
Java_A_B_C_GetValues(JNIEnv *env, jobject obj, jintArray arr, jint b){
....
....
}
logcatの実行中に次のように表示されます:W / dalvikvm(799):ネイティブLA / B /Cの実装が見つかりません;.GetValues([IJ)I
ndkのドキュメントでは、ヘッダーファイルの作成について厳密に言及されていないため、ヘッダーファイルはありません。
android.mkファイルの内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := baz
LOCAL_SRC_FILES := baz.cpp
include $(BUILD_SHARED_LIBRARY)
前もって感謝します。