C.에서 ANDROID SharedPreferences를 사용하고 싶습니다. 더 쉽게 사용할 수 있도록 클래스와 일부 메소드 (getIniParamInt, getIniParamString 등)가 있습니다. Java에서 문제없이 작동합니다. I는 JNI에서 메소드를 호출하는 경우는 다시 송신CallIntMethod 결과 -1 - ANDROID JNI
문제는, -1 C. 내 JAVA 코드 부품 (시험 SharedPref 간략화 제거 등.)
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를 호출하는 것이 잘못된 점을 알려주십시오. 감사합니다.