cpp クラスから Java の関数を呼び出してブール値をメモリに保存しようとすると、次のエラーが発生します。MyAdapter.cpp というクラスを使用して、関数を MyAdapterJni.cpp に呼び出しています。MyAdapterJni.cpp に次の関数を記述しました。
bool GetBooleanJni(const char *key, bool defaultValue)
{
cocos2d::JniMethodInfo methodInfo;
jboolean ret = false;
if (! getStaticMethodInfo(methodInfo, "GetBoolean", "(Ljava/lang/String;Z)Z"))
{
return ret;
}
ret = methodInfo.env->CallStaticBooleanMethod(methodInfo.classID, methodInfo.methodID, defaultValue);
methodInfo.env->DeleteLocalRef(methodInfo.classID);
return ret;
}
そして、私は myManager.java クラスに次の関数を持っています
public static boolean GetBoolean(String key, boolean defaultValue)
{
return sharedPreferences.getBoolean(key, defaultValue);
}
logcatで次のログを取得します
12-14 12:06:32.024: W/dalvikvm (9575): 例外 Ljava/lang/NullPointerException; Lcom/mygames/Game/MyManager の初期化中にスローされます。
12-14 12:06:32.024: D/libMyManager(9575): GetBoolean の静的メソッド ID が見つかりませんでした
私のJavaクラスはパッケージcom.mygames.Game内にあります
誰でもこのエラーの原因を教えてください