Ошибка ': app: lintVitalRelease' при создании подписанного apk


238

Я попытался загрузить свой apk в Google Play и обнаружил сообщение об ошибке: «Вы загрузили отлаживаемый APK. Из соображений безопасности необходимо отключить отладку, прежде чем ее можно будет опубликовать в Google Play. Узнайте больше об отладочных APK».

Затем я написал android:debuggable="false"в своем манифесте и попробовал еще раз. Я столкнулся с той же ошибкой, поэтому я установил вариант сборки из моего модуля на выпуск и попытался снова сгенерировать apk, но на этот раз генерируется эта ошибка:

Error:Gradle: 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
      }
  }
  ...

38
Кажется, что все ответы либо не проверяют ошибки, либо не прерывают ошибки, но как насчет обнаружения проблемы и ее исправления ??? Android Studio не показывает никакой информации о том, что не так ... Кто-нибудь смог это исправить без игнорирования ошибок?
Федерико Альварес

stackoverflow.com/questions/43203415/… перейдите на эту страницу для ответа. его работа для меня
Халим Безек

5
"но как насчет того, чтобы найти проблему и исправить ее ???" Я думал так же, но всегда пропускал вкладку «Результаты проверки» на нижней панели, а также содержимое папки build \ report. Пожалуйста, проверьте.
PravyNandas

1
папка build / report - очень хороший совет. Для меня проблема была в отсутствии переводов, и это было ясно из отчета html.
Пит

на ошибку Google дать вам решение, почему вы не попробовали это ???? сначала попытайтесь понять ошибку, а также сообщение об ошибке
Mafujul

Ответы:


393

Я бы не рекомендовал отключать проверки на ворсинки, они там по причине. Вместо этого проверьте, что это за ошибка, и исправьте ее.

Отчет об ошибке сохраняется в [app module]/build/reports/lint-results-yourBuildName-fatal.html. Вы можете открыть этот файл в браузере, чтобы прочитать об ошибках.

Было бы хорошо, если бы Gradle мог немного прояснить, где генерируется отчет об ошибке.


8
Согласитесь, гораздо лучше исправить ошибку! Кроме того , можно создать отчет вручную gradlew lintили с помощью IDE, см developer.android.com/studio/write/lint
Anigif

3
да, правильное направление. Более того, отчет об ошибках в этом html был хорошо описан, и ошибки были исправлены, поэтому я просто исправил их!
CodeToLife

6
да, это очень раздражает, когда он говорит, fix the issues identified by lintно на самом деле не показывает эти ошибки или путь к сообщению ...
user25

7
Это должен быть принятый ответ. Отключение пуха не является хорошим решением.
18:30

1
в моем случае ошибка была MissingTranslation: Incomplete translation- вопрос для Google: почему это не показано в Android Studio ?? Это называется integrated development environmentпо причине.
Кто-то где-то

187

У меня была эта проблема, и я решил ее, добавив:

lintOptions { 

    checkReleaseBuilds false

}

на мой build.gradleфайл в android{ }разделе.       


Это не имеет никаких других побочных эффектов на приложение, верно?
совершеноандройдер

10
Нет, отключение ворса не вызовет побочных эффектов в приложении. Lint - это инструмент для анализа кода, и упомянутая здесь ошибка, вызванная установкой свойства debuggable, может быть детально рассмотрена в файле «lint-results-release-fatal.html» в папке build / output.
error1337 15.07.15

Возникли проблемы при добавлении раздела android {} в мой файл build.grade верхнего уровня; поэтому последовал некоторым другим советам и добавил это в мой файл build.grade на уровне приложения, то есть на одну папку ниже, где уже был раздел Android.
Мартин Заске

13
Предупреждение: это просто отключает проверку ворса. Было бы лучше, по крайней мере, взглянуть на ошибки перед их отключением. В моем случае речь шла о пропущенных строках для определенных языков. Нажмите «Анализ» -> «Проверить код ..»
Маркус

2
Я не рекомендую это. В моем случае игнорирование этих предупреждений приведет к сбоям во время выполнения, вызванным отсутствием ресурсов. Пожалуйста, просмотрите lint-results-release-fatal.html и исправьте все проблемы.
Павел

76

если вы хотите узнать точную ошибку, перейдите по следующему пути в вашем проекте: /app/build/reports/lint-results-release-fatal.html( или .xml). Самый простой способ - если вы зайдете в файл xml, он покажет вам, в чем именно заключается ошибка, включая позицию ошибки в вашем классе java или в файле xml. Отключение проверок ворса не очень хорошая идея, они там по причине. Вместо этого перейдите к:

    /app/build/reports/lint-results-release-fatal.html or 
    /app/build/reports/lint-results-release-fatal.xml

и исправить это.


2
Это намного лучше, чем просто игнорировать ошибки и двигаться дальше. И HTML-файл так легко понять проблему.
Джон Пан

Я нашел проблему в /app/build/reports/lint-results-release-fatal.xml. спасибо
Букунми

Спасатель жизни. Проблема решена буквально за секунды, после просмотра файла xml.
Роман Розенштейн

50

Убедитесь, что вы определили все переводы во всех string.xmlфайлах


1
это была моя проблема .... добавить недостающие переводы исправить проблему спасибо
Hatem Badawi

Работал для меня некоторые переводы отсутствовали.
Химаншу Рават

40

В случае, если вы можете попытаться определить, где проблема, я нашел мой по следующему пути моего проекта: /app/build/reports/lint-results-release-fatal.html (или .xml).

Надеюсь это поможет!


оба файла пусты для меня.
m9m9m

35

Я столкнулся с той же проблемой при создании подписанного APK из Android-студии. Я просто немного изменил файл build.gradle внутри Android {}

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

Это сработало для меня. У меня была похожая проблема. Не удалось выполнить задачу ': app: lint *** Release'. > org.picocontainer.MutablePicoContainer.registerComponentInstance (Ljava / lang / Object;) Lorg / picocontainer / ComponentAdapter;
Нельсон Рамирес

24

Как найти подробности об ошибке

Anylyze -> Проверять код

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

Тогда в результатах проверки вы увидите ошибку

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

В моем случае сборка не удалась из-за неразрешенной ссылки на Javadoc в Google IAP 😐


3
Это должен быть принятый ответ. Для всех людей, которые предложили отключить проверку мусора, это всего лишь обходной путь. Все еще лучше исправить ошибку, чем пропустить ее. Пропуск проверок ворса следует проводить только в очень специфических случаях, а не постоянно. СНОВА, ЧТО ДОЛЖНО БЫТЬ СДЕЛАНО РЕДКО ИЛИ ДАЖЕ НЕ ВСЕ.
Арчи Г. Киньонес

20
***Try this***

 buildTypes {
        release {
            lintOptions {
                disable 'MissingTranslation'
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            signingConfig signingConfigs.release
        }
    }

18

Вы можете найти больше информации, выбирая сборку на вкладке сборки Gradle:введите описание изображения здесь


5
это фактический ответ, перейдите к приложению сборки в приложении, в окне Gradle и запустите его, дважды щелкнув мышью, Android Studio скажет вам точно, что оно выскакивает
Ваджид Али

1
Боже мой ... спасибо! Это сэкономило мне много времени! : D
thinklinux

Я получил, 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 }и я добавил его, но я получал одну и ту же ошибку при каждом создании релиза
Оливер Д

11

Попробуйте эти 3 строки в вашем файле app.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
}

@justColbs может быть, вы столкнулись с другой проблемой. Опубликовать вашу проблему с помощью журнала cat может быть кто-то, кто поможет вам.
Рехан Сарвар

8

У меня проблема с отсутствующим переводом. У меня был файл settings.xml, который не был переведен, так как он не был нужен, поэтому мне пришлось добавить «transurable =» false »в строки:

Эта строка не нуждается в переводе


8

Привет, ребята, это сработало для меня, я просто изменил свой тип сборки следующим образом:

buildTypes {
        release {
            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
                }
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

7

Просто найдите причину ошибки здесь и исправьте ее.

yourProject/app/build/reports/lint-results-release-fatal.xml

1
Вы должны знать, что именно ошибка и повторной сертификации. Спасибо.
Ашеша Джордж

Я нашел TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.в своем журнале, то есть не могу установить targetSdkVersion25.
Fruit

6

У меня проблема с отсутствующим переводом. У меня был файл settings.xml, который не был переведен, так как он не был нужен, поэтому мне пришлось добавить «transurable =» false »в строки:

<string translatable="false" name="stringname">This string doesn't need translation</string>

4

Как полагают многие, всегда лучше попытаться исправить ошибку из источника. проверьте файл, созданный ворсом

/app/build/reports/lint-results-release-fatal.html

прочитайте файл, и вы увидите, откуда возникла ошибка. Проверьте мой: ошибка произошла из-за неправильного ограничения просмотра.


4

Решите эту проблему, используя это в файле build.gradle (app) внутри основного Android {inside}

  buildTypes {
      //  crunchPngs false // or true   when png error
        release {
            lintOptions {
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

3

Попробуйте код ниже

buildTypes {
    release {
        lintOptions {
            disable 'MissingTranslation'
            checkReleaseBuilds false
            abortOnError false
        }
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}

3

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

Добавьте это внутри android {} build.gradle (Модуль: Приложение)

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
}

2

Windows -> ссылки -> Android-> проверка ошибок lint.

Снимите галочку Запустить полную ошибку .......

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


1
Очень красиво, но откуда это окно, пожалуйста? Я не смог найти его в Android Studio ...
Мартин Заске

2

Перейти к build.gradle (Модуль: приложение)

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
}

1

Удалите это утверждение из вашего манифеста в целом, Eclipse справится с этим для вас на лету.


0

Вы должны добавить код в файл gradle уровня проекта для генерации apk перезаписи ошибок


0

В моем случае проблема была связана с минимальным целевым уровнем API, который требуется Google Play. Было установлено менее 26.

Проблема исчезла, когда я установил минимальный целевой уровень API на 26.



-2

Если вы добавите в app.gradle под Android {

lintOptions {

    quiet true
    abortOnError false
}

}

Получит работу


Я думаю, что лучше по возможности исправлять ошибки и ошибки, вместо того, чтобы пропустить проверку
Piero
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.