У меня есть строка кода, которая была в моем приложении в течение нескольких недель, и это никогда не доставляло мне никаких проблем. (Я добавил его после получения ответа на вопрос, который я разместил здесь несколько недель назад.) Внезапно в Android Studio (3.1.4) возникла проблема, и я озадачен, почему.
version.setText(getString(R.string.version, BuildConfig.VERSION_NAME));
Ошибка говорит: «Строка формата 'версия' не является допустимой строкой формата, поэтому ее не следует передавать в String.format.
Вот определение версии из моего strings.xml:
<string name="version">Version: %1$s</string>
Я тоже не вижу в этом ничего плохого, но Android Studio настаивает, что что-то не так.
Я повторно набрал оператор setText под оператором, который он помечает, и сделал его абсолютно одинаковым во всех отношениях; вторая копия заявления НЕ помечается как неправильная. Таким образом, я стер оригинал утверждения, думая, что в исходной строке было что-то непонятное, например, невидимый символ где-то в строке. Но как только исходная строка была удалена, она помечала дублирующую строку как неправильную.
Я пробовал использовать Invalidate Caches / Restart и перестраивать весь проект, но ни один из них не устраняет ошибку.
Мне бы очень хотелось узнать, что не так с моим кодом - если что-нибудь - и, если код в порядке (как я почти уверен, что это так), как мне убедить Android Studio принять его как нормальный?
Единственные обновления, которые я сделал для Android Studio, так как первоначально добавление этого кода было обновлением эмулятора на днях с чего-то с 3.9 до чего-то с 3.10. Это не могло быть причиной этой проблемы, не так ли? Если так, как я могу это исправить или устранить проблему?
Я не могу тестировать свой код, пока эта проблема сохраняется и ДЕЙСТВИТЕЛЬНО мешает моей производительности.