如果设置APP_OPTIM:= release,SharedPreferences无法保存数据

时间:2014-10-15 04:51:37

标签: android c++ java-native-interface sharedpreferences

通过j +从c ++代码调用SharedPreferences APP_OPTIM := debug时,保存首选项,但不保存。

APP_OPTIM := release做了什么?

2 个答案:

答案 0 :(得分:0)

很容易了解APP_OPTIM=release的作用。只需运行

ndk-build -B V=1 APP_OPTIM=debug

ndk-build -B V=1 APP_OPTIM=release

并比较构建日志。

关于你的第一个问题,很可能C ++优化不会清理一些内存,SharedPreferences.Editor.commit()不会被调用,或者在SharedPreferences.Editor的另一个实例上调用(参见{{ 3}}例如)。

答案 1 :(得分:0)

更新:   事实证明,在jni代码中,返回被省略,可能是APP_OPTIM:= debug,   返回被添加并且为了释放,返回被省略。

int getPreference(string x)
{
    jniGetPreference(x);
}


int getPreference(string x)
{
    return jniGetPreference(x);
}