C++ メソッドから Java 関数を呼び出す際に問題が発生しています。以下は私がやっていることです
私のJavaクラス
package com.q.IT;
public class Carv {
public boolean isValidRatio(float a, float b)
{
//do something
return True;
}
}
私のC++メソッド
void printAndValidateResults() {
JNIEnv *env;
jclass ItClass =env->FindClass("com/q/IT/Carv");
jobject object = env->AllocObject(ItClass);
jmethodID isValidRatioID = env->GetMethodID(ItClass,"isValidRatio", "(FF)Z");
bool retVal = env->CallBooleanMethod(object, isValidRatioID, 1.0f,2.0f);
}
次のエラーが表示されます
06-23 23:35:03.459: A/libc(15758): Fatal signal 11 (SIGSEGV) at 0xe92d43a4 (code=1), thread 16113 (AsyncTask #2)
ご覧のとおり、C++ メソッドは通常の C++ メソッドであり、次のようなものではありません。
JNIEXPORT void JNICALL
Java_com_q_IT_blahblah(JNIEnv *, jobject)
{
、そのままにしておきたいです。クラッシュはここで発生します
jclass ItClass =env->FindClass("com/q/IT/Carv");
*env を何に初期化すればよいかよくわかりません。