Erro ': app: lintVitalRelease' ao gerar apk assinado

238

Tentei fazer upload do meu apk no google play e encontrei uma mensagem de erro: "Você enviou um APK depurável. Por motivos de segurança, é necessário desativar a depuração antes que ele possa ser publicado no Google Play. Saiba mais sobre APKs depuráveis".

Então eu escrevi android:debuggable="false"no meu manifesto e tentei novamente. Eu encontrei o mesmo erro, então configurei a variante de compilação do meu módulo para liberar e tentei gerar um apk novamente, mas desta vez, esse erro é gerado:

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
      }
  }
  ...
user3716366
fonte
38
Todas as respostas parecem não verificar erros ou abortar erros, mas que tal encontrar o problema e corrigi-lo ??? O Android Studio não mostra informações sobre o que está errado ... Alguém foi capaz de corrigir isso sem ignorar erros?
Federico Alvarez
stackoverflow.com/questions/43203415/… vá nesta página fr answer. seu trabalho para mim
Halim Bezek /
5
"mas que tal encontrar o problema e corrigi-lo ???" Pensei o mesmo, mas sempre ignorei a guia 'Resultados da inspeção' na barra inferior e também criei o conteúdo da pasta \ report. Por favor, verifique.
precisa saber é o seguinte
1
A pasta build / report é uma dica muito boa. Para mim, o problema estava faltando nas traduções e ficou claro no relatório html.
Pete
no erro que o google te deu a solução, por que você não tentou isso ???? primeiro tente entender o erro e a mensagem de erro
Mafujul 27/09

Respostas:

393

Eu não recomendaria desligar os cheques de algodão, eles estão lá por um motivo. Em vez disso, verifique qual é o erro e corrija-o.

O relatório de erros é salvo em [app module]/build/reports/lint-results-yourBuildName-fatal.html. Você pode abrir este arquivo em um navegador para ler sobre os erros.

Seria bom que Gradle deixasse um pouco mais claro onde o relatório de erros é gerado.

Graydyn Young
fonte
8
Concordo, é muito melhor corrigir o erro! Também é possível gerar o relatório manualmente com gradlew lintou via IDE, consulte developer.android.com/studio/write/lint
Anigif
3
sim, direção correta. Além disso, o relatório de erros nesse html foi bem descrito e os erros foram resolvidos ok, então eu os corrigi com facilidade!
CodeToLife 26/05
6
sim, é muito chato quando se diz fix the issues identified by lint, mas na verdade não mostra esses erros ou caminho para relatório ...
USER25
7
Essa deve ser a resposta aceita. Desabilitar fiapos não é uma boa solução.
slhddn
1
no meu caso, o erro foi MissingTranslation: Incomplete translation- pergunta para o Google: por que isso não é mostrado no Android Studio ?? É chamado de integrated development environmentpor uma razão.
Alguém em algum lugar
187

Eu tive esse problema e o resolvi adicionando:

lintOptions { 

    checkReleaseBuilds false

}

para o meu build.gradlearquivo dentro da android{ }seção       

nail
fonte
Isso não tem outros efeitos colaterais no aplicativo, certo?
committedandroider
10
Não, desligar o cotão não causará efeitos colaterais no aplicativo. O Lint é uma ferramenta de análise de código e o erro mencionado aqui, causado pela configuração da propriedade debuggable, pode ser exibido em detalhes no arquivo "lint-results-release-fatal.html" na pasta build / outputs.
error1337
Ocorreu um problema ao adicionar uma seção do Android {} ao meu arquivo build.grade de nível superior; então segui alguns outros conselhos e o adicionei ao meu arquivo build.grade no nível do aplicativo, ou seja, uma pasta mais abaixo, onde a seção android já estava presente.
Martin Zaske
13
Aviso: Isso simplesmente desativa as verificações de cotão. Seria melhor, pelo menos, dar uma olhada nos erros antes de desativá-los. No meu caso, eles eram sobre algumas seqüências de caracteres ausentes para idiomas específicos. Clique em "Analisar" -> "Inspecionar código .."
Markus
2
Eu não recomendo isso. No meu caso, ignorar esses avisos causaria falhas no tempo de execução causadas pela falta de recursos. Revise lint-results-release-fatal.html e corrija todos os problemas.
Paweł Nadolski
76

se você quiser descobrir o erro exato, vá para o seguinte caminho no seu projeto: /app/build/reports/lint-results-release-fatal.html(ou .xml). A maneira mais fácil é que, se você for para o arquivo xml, ele mostrará exatamente qual é o erro, incluindo a posição do erro na classe java ou no arquivo xml. Desativar as verificações de cotão não é uma boa ideia, eles estão lá por um motivo. Em vez disso, vá para:

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

e conserte

Josi
fonte
2
É muito melhor do que simplesmente ignorar os erros e seguir em frente. E o arquivo HTML é tão fácil de entender o problema.
John Pang
Encontrei o problema em /app/build/reports/lint-results-release-fatal.xml. obrigado
Bukunmi
Poupança de vida. Problema resolvido em literalmente segundos, depois de analisar o arquivo xml.
Roman Rozenshtein 04/07/19
50

Certifique-se de definir todas as traduções em todos os string.xmlarquivos

Roberto
fonte
1
que era o meu problema .... adicionar traduções falta corrigir o problema graças
Hatem Badawi
Trabalhou para mim algumas traduções estavam faltando.
Himanshu Rawat 02/08/19
40

Caso você esteja tentando localizar onde está o problema, encontrei o meu no seguinte caminho do meu projeto: /app/build/reports/lint-results-release-fatal.html (ou .xml).

Espero que isto ajude!

Pecolyte Wang
fonte
ambos são arquivos estão vazios para mim.
M9m9m
35

Eu enfrentei o mesmo problema ao criar apk assinado do android studio. Acabei de alterar algumas alterações no arquivo build.gradle dentro do Android {}

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
Dhruv Raval
fonte
Isso funcionou para mim. Eu tive uma questão semelhante. Falha na execução da tarefa ': app: lint *** Release'. > org.picocontainer.MutablePicoContainer.registerComponentInstance (Ljava / lang / Object;) Lorg / picocontainer / ComponentAdapter;
Nelson Ramirez
24

Como encontrar detalhes do erro

Anylyze -> Inspecionar código

insira a descrição da imagem aqui

Em Resultados da inspeção, você verá um erro

insira a descrição da imagem aqui

No meu caso, a compilação falhou devido à referência javadoc não resolvida no Google IAP.

Mikhail
fonte
3
Essa deve ser a resposta aceita. Para todas as pessoas que sugeriram desativar a verificação de cotão, isso é apenas uma solução alternativa. Ainda é melhor corrigir o erro do que ignorá-lo. Ignorar verificações de cotão deve ser feito apenas em casos muito específicos e não o tempo todo. Novamente, isso deve ser feito raramente ou nem mesmo.
Archie G. Quiñones
20
***Try this***

 buildTypes {
        release {
            lintOptions {
                disable 'MissingTranslation'
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            signingConfig signingConfigs.release
        }
    }
Amit raj
fonte
18

Você pode encontrar mais informações escolhendo Montar na guia Gradle Build:insira a descrição da imagem aqui

Mateusz Kaflowski
fonte
5
esta é a resposta real, acesse o assemble in app, na janela gradle e execute-o clicando duas vezes, o Android studio dirá exatamente o que estava sendo exibido.
precisa
1
Oh meu Deus ... obrigado! Aquele me salvou muito tempo! : D
thinklinux 19/04/19
Eu consegui 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 }e o adicionei, mas sempre recebo o mesmo erro sempre que construo um release
Oliver D
11

Experimente Estas 3 linhas no seu arquivo 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
}
Rehan Sarwar
fonte
@justColbs pode ser que você esteja enfrentando outro problema. Publique seu problema com o log cat pode ser um guia adequado.
Rehan Sarwar
8

Meu problema foi uma tradução ausente. Eu tinha um settings.xml que não foi traduzido porque não era necessário, então tive que adicionar "translatable =" false "às strings:

Esta cadeia não precisa de tradução

Harsh Masand
fonte
8

Olá pessoal, isso funcionou para mim, eu apenas modifico meus BuildTypes assim:

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'
        }
    }
DoctorDroid Haiti
fonte
7

Apenas encontre o motivo do erro aqui e corrija-o.

yourProject/app/build/reports/lint-results-release-fatal.xml
Amir Hossein Ghasemi
fonte
1
você deve saber qual erro exato e recertificar. obrigado.
Asesha George
Encontrei TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.no meu log, ou seja, não consigo definir targetSdkVersion25.
Fruit
6

Meu problema foi uma tradução ausente. Eu tinha um settings.xml que não foi traduzido porque não era necessário, então tive que adicionar "translatable =" false "às strings:

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

Como muitas pessoas sugeriram, é sempre melhor tentar corrigir o erro da fonte. verifique o arquivo gerado por fiapos

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

leia o arquivo e você será direcionado para a origem do erro. Confira o meu: o erro veio de uma restrição de visualização incorreta.

Quwaysim
fonte
4

Resolva este problema Usando isso no arquivo build.gradle (app) Dentro do Android principal {dentro}

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

Experimente o código abaixo

buildTypes {
    release {
        lintOptions {
            disable 'MissingTranslation'
            checkReleaseBuilds false
            abortOnError false
        }
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}
Sheikh Ahmed Qureshi
fonte
3

insira a descrição da imagem aqui

Adicione isso dentro do android {} build.gradle (Módulo: App)

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
}
Panneerchelvam Piratheepan
fonte
2

Windows -> referências -> Android-> verificação de erro de cotão.

un tick Executar erro completo .......

insira a descrição da imagem aqui

alguém
fonte
1
Muito bonita, mas de onde é essa janela, por favor? Eu não poderia encontrá-lo em Android estúdio ...
Martin Zaske
2

Vá para build.gradle (Módulo: app)

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
}
Kaiffi
fonte
1

Remova a declaração do seu manifesto completamente, o Eclipse cuidará disso para você em tempo real.

Eran Goldin
fonte
0

Você deve adicionar o código no arquivo gradle no nível do projeto para gerar a substituição do apk sobre erros

Kamal
fonte
0

No meu caso, o problema estava relacionado ao nível mínimo da API de destino exigido pelo Google Play. Foi definido com menos de 26.

O problema desapareceu quando defini o nível mínimo da API de destino como 26.

mdicosimo
fonte
0
    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }

O código acima pode corrigir o problema ignorando-o, mas também pode resultar em falha do aplicativo.

A boa resposta está no seguinte link:

Erro ao gerar apk assinado

Josi
fonte
-2

Se você adicionar app.gradle no android {

lintOptions {

    quiet true
    abortOnError false
}

}

Vai dar trabalho

Alpesh Sorathiya
fonte
Eu acho que é melhor para lints corrigir e erros, se possível, em vez de ignorar a verificação
Piero