Android — SharedPreferences не может сохранить данные, если параметр APP_OPTIM: = release

SharedPreferences вызывается через jni из кода C ++.
когда APP_OPTIM := debug, предпочтение сохраняется, но не для выпуска.

Что значит APP_OPTIM := release делать?

0

Решение

ОБНОВИТЬ:
Оказывается, в коде jni возвращение опущено, возможно, с APP_OPTIM: = debug,
возврат добавлен, а для выпуска возврат опущен.

int getPreference(string x)
{
jniGetPreference(x);
}int getPreference(string x)
{
return jniGetPreference(x);
}
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 (увидеть https://stackoverflow.com/a/9677788/192373 например).

0

По вопросам рекламы [email protected]