Intereting Posts
Поиск местоположения: служба местоположения Google Play или интерфейсы местоположения платформы Android Как установить цвет выделения для элемента ListView? Android – тестирование по сравнению с производственной версией Ошибка ответа на конверт SOAP: ошибка чтения XMLStreamReader Gradle: добавьте зависимость для конкретного вкуса библиотеки Android VM сбой при запуске Mac «Аргумент« контекст »не может быть нулевым» Android alphabetindexer с числами Проект библиотеки реализует слияние манифеста? Как подключиться к серверу PostgreSQL через JDBC в Android? Невозможно включить в android.app.Fragment Наименее инвазивный способ однозначно идентифицировать пользователя Android Состояние гонки между Application onCreate и загруженными ресурсами? API WooCommerce для мобильного приложения Как отобразить форматированный текст в формате HTML в поле PopUp с помощью диалогового окна создания предупреждений?

Как подписать APK на Android Studio даже с непереведенными строками?

Задний план

Недавно я перенес свое приложение в Android-Studio. У меня были некоторые проблемы с этим, но в конце концов я их преодолел.

Проблема

По какой-то причине, в Android Studio, когда я пытаюсь подписать APK, я получаю много ошибок, которые выглядят так:

Error:(16) Error: "..." is not translated in "de" (German), "el" (Greek), "iw" (Hebrew) [MissingTranslation] 

(Где «…» – строка)

Внизу, после многих ошибок такого рода, я вижу следующее:

 Error:Execution failed for task ':app:lintVitalRelease'. > Lint found fatal errors while assembling a release target. To proceed, either fix the issues identified by lint, or modify your build script as follows: ... android { lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } } ... 

Вопрос

Я не уверен, что случилось, и как я могу это исправить. На Eclipse я сделал это очень легко. Отсутствующие переводы не должны мешать мне подписывать APK …

Мне кажется, что Lint препятствует экспорту APK, и причина в том, что я не перевел все строки. Это правда?

Кто-нибудь может мне помочь, пожалуйста! Как я могу исправить это, так что Lint покажет мне только предупреждения? Или диалог подтверждения, если я уверен, что хочу это сделать?

Solutions Collecting From Web of "Как подписать APK на Android Studio даже с непереведенными строками?"

Самый чистый способ решить проблему – отключить проверки недостающих переводов Lint только для версий релизов.

Для этого добавьте «отключить« MissingTranslation »в файл build.gradle, как показано ниже:

 android { buildTypes { release { lintOptions { disable 'MissingTranslation' } } } } 

Мне кажется, что Lint препятствует экспорту APK, и причина в том, что я не перевел все строки. Это правда?

Да. Значение по умолчанию – lintOptions.abortOnError = true

Кто-нибудь может мне помочь, пожалуйста!

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

 android { lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } } 

Некоторые предупреждения Lint по умолчанию превращаются в студию как ошибки, я действительно не знаю почему, но с точки зрения переводов я предполагаю, что это способ «остановить» публикацию приложения, что перевод неполный из-за последних дополнений Некоторых текстов.

С помощью lintOptions checkReleaseBuilds abortOnError вы устанавливаете проверку Lint, чтобы она не запускалась для версий выпуска, а также не останавливалась, если найдена «ошибка». Ниже я объясню, где можно найти параметры ошибок Lint, поэтому, если вы хотите идти дальше, вы можете сделать один шаг вперед и прочитать их один за другим. Некоторые из них предоставляют полезные инструкции для оптимизации кода.

Как я могу исправить это, так что Lint покажет мне только предупреждения? Или диалог подтверждения, если я уверен, что хочу это сделать?

Существует также опция в настройках Android Studio, чтобы изменить любую ошибку Lint на предупреждение Lint, но я никогда не проверяю это. Обычно я обращаюсь к решению градиента.

Опция находится в меню « Settings > « Inspections > « Android Lint . Для упрощения поиска откройте «Настройки» и в поиске (расположенном вверху) введите Lint translation там, вы можете изменить параметры перевода слева от ошибок до предупреждений.

Другой вариант, если ваши строки ошибок никогда не будут переведены, заключается в добавлении в ваши tools:ignore="MissingTranslation" XML-файлов строк tools:ignore="MissingTranslation" либо в корневом элементе, либо в каждой непереводимой строке.

Простой способ решить эту ошибку

Просто добавьте следующий код Чтобы добавить «отключить« MissingTranslation »в файл build.gradle, как показано ниже:

 ... android { lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } } ... 

ИЛИ Вы также можете добавить это:

 android { buildTypes { release { lintOptions { disable 'MissingTranslation' } } } } 

Вы можете попытаться открыть «Редактор переводов» и установить строку «…» как «Unstranlatable». Вы также должны удалить все переводы этой строки.

FWIW: Если вы не планируете поддерживать другие языки, вам не нужно вообще отключать чеки. Иногда ваша настройка проекта (или импортируемая библиотека) может быть случайно или намеренно включена в конфигурацию для поддержки дополнительных языков, объявив папку значений для этого языка, например, например:

<your project source folder>/main/res/values-ar

Это было для меня, поэтому я просто удалил папку. Но если у вас нет контроля над библиотекой-нарушителем, тогда один из вариантов – отключить lint abortOnError, как указано в принятом ответе, или найти способ как-то исключить «библиотеки-импортированные» папки. Для последнего варианта вы можете начать здесь