Почему Resources.getString () может периодически возвращать строки из неправильной локали?

Если настройки архитектуры и компоновщика выглядят хорошо, проверьте свои h-файлы. Моя проблема была той же ошибкой, но я перестроил h-файлы, и я удалил оператор extern. Другие файлы m использовали эту переменную, вызывая ошибку компоновщика.

26
задан Bob Whiteman 12 February 2011 в 05:15
поделиться

1 ответ

Это всего лишь теория, но у вас может быть утечка контекста. По сути, старая активность могла сообщать о строковых значениях, а не о вновь созданных.

Способ проверить это:

  1. Заменить TAG на переменную-член (НЕ STATIC!).
  2. OnCreate, установите TAG = this.toString (), это поместит адрес памяти действия в качестве тега.
  3. Распечатайте упражнение, используя исходную локаль.
  4. Делайте все, чтобы изменить язык. Это должно (никогда не проверять это) перезапустить действие, и вы получите новое действие. Если вы делаете. Затем посмотрите на журнал и посмотрите, меняется ли адрес памяти для тега. Если адрес памяти такой же, как и прежде, контекст просочился.
1
ответ дан Jeremy Edwards 12 February 2011 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: