私はANDROID SharedPreferencesをCから使用したいと思います。 使いやすくするために、クラスといくつかのメソッド(getIniParamInt、getIniParamStringなど)があります。 (テストのために簡略化し、SharedPref除去等)私はそれが返送-1私のJavaコードのC. パートにJNIからメソッドを呼び出す場合CallIntMethodの結果-1 - ANDROID JNI
問題がある:
public class IniManipulate {
public int getIniParamInt(String mezoNev)
{return 999;} // settings.getInt("abc", -9999);
Cコード:
const char* paramOut
paramOut = "abc";
jmethodID mid = (*env)->GetMethodID(env,cls1,"getIniParamInt","(Ljava/lang/String;)I");
if (mid == NULL) {cDebug1 = 888;return; }
jstring* parameter = (*env)->NewStringUTF(env, paramOut);
if (parameter == NULL) {return;}
jint paramInt = (jint) (*env)->CallIntMethod(env,thiz, mid, parameter);
cDebug1 = (int)paramInt;
常にparamInt = -1で返されます。 999の代わりに。
私は既にウェブ全体を掘り下げてしまっており、解決策を見つけることができませんでした。 CallIntMethodの呼び出しに何が問題なのですか教えてください。 ありがとう!