Eu estava tentando alterar minha atividade padrão / main / startup (como você chama) editando o androidmanifest.xml
arquivo. Tudo o que fiz foi mudar de android:name
propriedade. no entanto, isso quebrou completamente o aplicativo inteiro. quando tento instalar ele falha e lê.
Erro de instalação: INSTALL_PARSE_FAILED_NO_CERTIFICATES
Quando tentei voltar ao estado anterior, ele ainda estava me dando o mesmo erro ... O que eu fiz?
android
installation
apk
android-install-apk
mtmurdock
fonte
fonte
INSTALL_PARSE_FAILED_NO_CERTIFICATES
é o erro-103
que você pode obter / ver viaadb log
( src ), por exemplo.D/PackageInstaller(21320): Installation error code: -103
Respostas:
Você editou o
AndroidManifest.xml
diretamente no.apk
arquivo? Se assim for, isso não vai funcionar.Todo Android
.apk
precisa ser assinado se for instalado em um telefone , mesmo que você não esteja instalando através do Market. As ferramentas de desenvolvimento resolvem isso assinando um certificado de desenvolvimento, mas o documento.apk
ainda está assinado.Um uso disso é para que um dispositivo possa saber se
.apk
é uma atualização válida para um aplicativo instalado, pois se for o mesmo, os Certificados.Portanto, se você fizer alguma alteração no seu aplicativo, precisará reconstruí-
.apk
lo para que ele seja assinado corretamente.fonte
flutter clean
e corra / depure novamente! Esta operação é semelhante à solução acima, pois limpa a pasta de compilação e reconstrói o arquivo de compilação novamente na execução / depuração!Descobri que agora esse erro também pode ocorrer ao usar a configuração de assinatura incorreta. Conforme descrito aqui , o Android 7.0 introduz um novo esquema de assinatura, V2 . O esquema V2 assina o APK inteiro em vez de apenas o JAR, como é feito no esquema V1. Se você assinar apenas com a V2 e tentar instalar em um destino anterior à 7.0, receberá este erro, pois os JARs não são assinados e o PackageManager anterior à 7.0 não pode detectar a presença da assinatura APK da V2.
Para ser compatível com todos os sistemas de destino, verifique se o APK está assinado com os dois esquemas, marcando as duas caixas de versão de assinatura na caixa de diálogo Gerar APK assinado do Android Studio, conforme mostrado aqui:
Se apenas os destinos 7.0 forem previstos, não será necessário incluir a assinatura V1.
fonte
Eu descobri que isso foi causado pela minha versão do JDK.
Eu estava tendo esse problema com 'ant' e era devido a este CUIDADO mencionado na documentação:
Eu tenho o JDK 7. No meu log Ant, usei -v para verbose e ele mostrou
Assinei o JAR manualmente e o zipalignei, mas deu um erro um pouco diferente:
Eu achei que respondeu aqui.
Como lidar com INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES sem desinstalação
Eu só precisava desinstalá-lo e funcionou!
Agora só preciso modificar o build.xml para usar essas opções ao assinar!
Ok, aqui está: C: \ Arquivos de programas \ Java \ android-sdk \ tools \ ant \ build.xml
fonte
Na maioria das vezes, a solução para esse erro é realmente simples:
fonte
resolvido (para mim) usando na keytool os argumentos
e usando no jarsigner
solução encontrada em
Que tipo de pitfals existem para a assinatura do APK do Android?
fonte
Eu também estava enfrentando o mesmo problema. Primeiro, criei a compilação usando a V2 e instalei em dispositivos móveis executando o OS 5.1 e tive o mesmo problema. Mas a compilação estava funcionando bem no Tablet rodando no OS 7.0. Então, eu criei a build com a assinatura Jar V1 e estava funcionando bem nos dois dispositivos.
Conclusão: se você estiver suportando o dispositivo abaixo do Android OS 7.0. Use a assinatura jar V1 para gerar a construção.
fonte
No meu caso, eu poderia criar e executar versões de lançamento, mas obtive o
INSTALL_PARSE_FAILED_NO_CERTIFICATES
erro ao tentar fazer uma versão de depuração.A solução foi excluir meu
debug.keystore
arquivo e permitir que o ADT o recrie. Aparentemente, expirou.Uma solução melhor a longo prazo é criar explicitamente um
debug.keystore
que não expire após apenas um ano, em vez de permitir que o ADT o crie. Aqui está o comando para fazer isso:Quando solicitado, insira estes valores:
fonte
Essa é uma solução feia, mas rápida: use o JDK 6 em vez de 7.
Depois de ler a resposta de Chloe, desinstalei o JDK 7 (não é necessário atualmente) e instalei o JDK 6. Foi corrigido. Uma solução melhor faria o ant usar o JDK 6 (sem desinstalar o 7). Talvez seja possível alterar / definir esta propriedade:
java.library.path
no arquivo local.properties. Está no diretório do projeto (raiz).
O Android não funciona de qualquer maneira com o JDK 7 (apenas 6 ou 5); portanto, o script ant também usa o JDK 6 ou 5 é provavelmente uma boa solução.
fonte
Isso porque a compilação e a atualização geradas anteriormente estão tendo conflito na versão de assinatura entre v1 (assinatura jar) e v2 (assinatura completa do APK),
Para corrigir a versão correta da assinatura na caixa de diálogo Gerar APK assinado
fonte
Recentemente, tive esse erro ao atualizar para o Android Studio 4.0. A causa foi que o projeto teve a assinatura V2 desativada na configuração de assinatura
build.gradle
.A solução foi removê-lo
v2SigningEnabled false
ou configurá-lo explicitamentetrue
, que é o valor padrão.fonte
Nas versões mais recentes do Android Studio 3.2+, se você estiver tentando executar a
release
instalação e não tiver definido nenhuma configuração de assinatura, ele mostrará o prompt de erro e a instalação falhará. O que você precisa fazer é executar adebug
compilação ou definir a configuração de assinatura (V1 ou V2) corretamente.fonte
a maioria das respostas é verdadeira. e algumas outras razões que acontecem são
fonte
Isso pode acontecer se você tentar incluir uma
.jar
biblioteca que contenha umAndroidManifest.xml
arquivo.fonte
Você também pode verificar
Project Structure
->Default Config
->Signing Config
depois de você adicionar tudo o que você precisa
fonte
A configuração da variável de ambiente
JAVA_HOME
como JDK 5 ou 6 (em vez de JDK 7) corrigiu o erro.fonte
Depois de algum tempo e vários tópicos online sobre o assunto, consegui consertar meu projeto.
Isso leva principalmente em consideração os últimos arquivos ( podem ser imagens ou layouts ) que você coloca. Se você excluí-los, funcionará e você poderá criar seu projeto novamente.
fonte
Eu estava tendo esse erro no meu Eclipse Console. Acontece que eu tinha dois jarros com o mesmo conteúdo, mas com nomes diferentes e eles estavam em conflito um com o outro. Acabei de excluir um deles e consegui instalar o aplicativo no dispositivo.
fonte
Eu estava recebendo esse erro porque libertei que
ant release
estava falhando porque o espaço em disco estava acabando.fonte
Eu recebi esse erro quando tentei instalar um projeto Xamarin desenvolvido com base na visualização do Android N em um telefone executando a API v23. A solução é não fazer isso.
fonte
Outra maneira de obter esse erro é criar usando
ant
no macOS e ter um arquivo de ícone do Finder (Icon\r
) na árvore de origem do aplicativo. Parecejarsigner
que não pode lidar com o retorno de carro no nome do arquivo e, embora afirme que a assinatura é válida se você-verify
o APK, sempre resulta em um APK que não será instalado em um dispositivo. Ironicamente, o plug-in do Google Drive Finder é uma excelente fonte de arquivos de ícones do Finder.A solução é excluir os arquivos incorretos (que são inúteis no APK de qualquer maneira) com um especificador como este no
fileset
:fonte
Esse problema ocorrerá se você estiver instalando a versão não assinada do APK. Verifique se você está instalando o APK correto.
fonte
Eu tive esse problema com o código iônico / Visual Studio (execute o Android no dispositivo):
Desinstalei o aplicativo no dispositivo móvel (configurações / aplicativos), o erro desapareceu e o aplicativo foi iniciado.
fonte
Ele está lançando esse erro para mim hoje porque eu tenho um aplicativo com um mínimo de sdk de 28 e estou jogando no emulador com uma versão SDK de 23. Normalmente, isso não é possível (como o cinza está fora do botão de reprodução), mas hoje não é assim Muito de.
fonte
Primeiro, tente fazer isso:
fonte
Se você estiver usando o emulador, tente redefini-lo e, se você desinstalar o aplicativo primeiro, desative o modo de desenvolvedor e, em seguida, ligue-o, o problema será resolvido.
fonte