Android Studio показывает ошибки (пропавший перевод) после обновления

Недавно я обновил мою Android-студию от проекта 2.2.3 to 2.3.0, работая нормально в 2.2.3, но после обновления пути класса зависимостей проекта от 2.2.3 to 2.3.0 получаю много недостающих Ошибка перевода из string.xml.

введите описание изображения здесь

Может ли кто-нибудь сказать мне, почему это происходит, и как разрешить эти ошибки?

Ответ 1

У вас есть много способов исправить это:

Первый метод:

Добавить в build.gradle:

android {
     lintOptions {
        disable 'MissingTranslation'
    }
}

Второй метод:

Это атрибут ignore пространства имен tools в файле строк, как показано ниже:

<?xml version="1.0" encoding="utf-8"?>
<resources
  xmlns:tools="http://schemas.android.com/tools"
  tools:ignore="MissingTranslation" >

  <!-- your strings here; no need now for the translatable attribute -->

</resources>

Третий метод:

В ADT перейдите к window->Preferences->Android->Lint Error Checking

Найдите там Missing Translation и измените его Severity на Warning.

Ссылка ссылки:

http://www.fasteque.com/missingtranslation-issue-for-release-builds/

Надеюсь, что это будет полезно для вас.

Ответ 2

Я столкнулся с той же проблемой. Основываясь на моем замечании, эта проблема была введена с плагином Gradle версии 2.3.0. Это происходит, когда в вашем проекте есть модуль, который поддерживает больше языков, чем ваше приложение или другие модули. Вы можете начать редактировать переводы таких модулей, но это делает их менее обслуживаемыми.

Если вы отключите проверки Lint, используя любые предложения здесь или по аналогичным вопросам, вы также игнорируете фактические ошибки перевода в своем приложении, где отсутствует перевод для поддерживаемого вами языка. Вы должны быть очень осторожны, сохраняя свои строки после этого.

Существует еще один, также субоптимальный, вариант: измените версию плагина на последний, не показывая эти симптомы в вашем build.gradle.

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.3'
}

Однако существует способ сделать эту работу без потери жизненно важных предупреждений/ошибок и без возврата к старым версиям инструмента. Вы можете найти его в документации Google, а также в этом ответе.

android {
    defaultConfig {
        ...
        resConfigs "en", "fr"
    }
}

Это удаляет ненужные ресурсы, а также предупреждения и ошибки вместе с ними. Я обновил свой код, и теперь он отлично работает.

Есть еще одна проблема, которая была введена с новой версией плагина Gradle: если вы получаете ложные срабатывания, то есть ошибки, жалующиеся на недостающие переводы для строки, которую вы отметили непереводимой, проверьте, существует ли имя строки в другом модуле, В этом случае переименуйте или предоставите переводы, и ошибка исчезнет.