Estou desenvolvendo um pequeno aplicativo que lista todos os aplicativos presentes / instalados no dispositivo android. Mas estou recebendo o erro abaixo enquanto tento executar o código.
Erro de instalação: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
Por favor, qualquer um pode me ajudar a resolver esse erro.
Respostas:
Pode haver outro motivo para esse erro. O atributo
Deve sempre começar com um ponto, como:
fonte
O nome da atividade deve ser prefixado com "." em seu arquivo de manifesto.
fonte
Eu estava tendo este erro porque tinha letras maiúsculas no nome do meu pacote como este
depois que eu mudei para algo como
foi resolvido
fonte
O código de erro INSTALL_PARSE_FAILED_MANIFEST_MALFORMED é retornado por PackageParser.java quando ele detecta qualquer um de um grande número de erros no arquivo manifest.xml.
Para isolar o erro, procure no logcat (ao executar o comando 'adb install foo.apk'). No problema que encontrei, o logcat continha:
Na quarta linha acima, você pode ver que PackageParser reclama que a linha # 214 do arquivo manifest.xml "<provider> não inclui o atributo de autoridades" . Veja a lista abaixo de todos os casos em PackageParser que retornam esse código de erro. (PackageParser é a única classe que produz o código de erro PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED)
No meu caso, a mensagem "<provider> não inclui atributo de autoridades" é produzida pela linha 2490 de PackagerParser.java na função parseProvider chamada por parseApplication.
A partir da versão 4.1.1 de frameworks / base / core / java / android / content / pm / PackageParser.java, PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED é referenciado nessas linhas nesses métodos. Se o número da linha do código-fonte for seguido por uma string entre aspas, essa é a mensagem impressa no logcat. se o número da linha for seguido por uma expressão Java que é o código que causou o retorno desse código de erro, essa função deve ser investigada para ver o que causou o retorno da mensagem de erro. Em alguns casos, não consegui isolar a causa do erro para uma chamada de método específica.
É lamentável que você tenha que vasculhar o logcat e a fonte para descobrir o que causa o problema.
fonte
IntentFilter.MalformedMimeTypeException
que perdi.Verifique o nome da sua atividade no arquivo de manifesto
ou o nome do pacote na atividade principal / aula
fonte
Eu tenho o mesmo problema, mas quando ligo um processo assim:
Quando eu mudo para:
Tudo começa a funcionar.
fonte
Eu tive o mesmo problema há um tempo atrás, nos documentos do Android eles disseram que se você não usar ":" como prefixo,
android:process
você deve usar uma letra minúscula, mas eles nunca disseram isso, então deve ser um processo semelhante a um pacote nome, gostocom.company.app.services.MyService
fonte
Qualquer nome como
android:name
,android:process
deve estar na forma de nome de pacote: começa coma..z
, combina com outros com.
, não termina com.
...fonte
android:process="com.my_pack.services.MyServiceProcess"
(com.my_pack.services é o pacote onde está meu serviço) e o erro de instalação não aparecerá depois disso.Meu problema era que eu havia escrito (observe o - vs. o _):
sob uma atividade. Essa também pode ser a causa do seu problema.
fonte
Obteve o mesmo erro! tinha etiqueta de permissão vazia e isso estava causando o problema!
fonte
Tive o mesmo problema depois de adicionar localizações
A string
@string/version_name
acidentalmente passou para um dos novos arquivos de string localizados adicionados (ela apareceu apenas nos novos arquivos). Depois de verificar todas as localizações e remover@string/version_name
de todos os arquivos, exceto eng locale, tudo funcionou novamentefonte
Leia os registros do seu dispositivo Android para diagnosticar esse erro. Espere uma linha "W / PackageParser" explicando o problema.
fonte
deve ser definido ANTES
fonte
Eu tive este erro porque o código abaixo
Quando mudei
android:mimeType="*"
paraandroid:mimeType="*/*"
consertar esse erro.fonte
A pasta de nome da atividade criada deve ser em letras minúsculas. Não use letras maiúsculas para o nome da pasta de atividade .... é sempre melhor usar letras minúsculas.
fonte
isso pode ser por vários motivos, mas para mim foi resolvido alterando o nome do pacote com o nome em minúsculas (o nome do pacote era Activities, resolvido com atividades).
fonte
Se você estiver usando multidex no manifesto, ele deve ser adicionado com valor ou recurso. Gostar..
OU
em seguida, limpe o projeto e reinstale o aplicativo.
fonte
No meu caso, estava me referindo a um ícone usando um atributo como este:
em vez do drawable:
Estou usando esse atributo em vários lugares, mas parece que não funciona no manifesto.
fonte
Eu crio um novo aplicativo e o direciono para o Android Pie . Tudo estava funcionando bem e, ultimamente, descobri que meu aplicativo não instala no Android Naught e na versão inferior do sistema operacional Android.
Durante a instalação, vejo uma mensagem de falha
Portanto, as correções que fiz são as seguintes e todas precisam ser feitas
AndroidManifest.xml
apenas no arquivo.Para atividade, serviço, receptor e todos
Para permissões de manifesto
Essas foram todas as mudanças que eu tive que realizar para que funcionasse para dispositivos de versão inferior também.
fonte
-Alvo
<activity>
precisa ser especificado antes de o<activity-alias>
.fonte
Pode haver outros arquivos malformados, mas não destacados no IDE, por exemplo, res / values / strings que o manifesto pode fazer referência para itens como rótulos.
fonte
No meu caso, a causa foi a ausência do atributo android: name em <activity-alias>. É obrigatório para <activity-alias> embora não deva nomear uma classe existente. O engraçado é que o projeto é compilado sem problemas.
fonte
Meu problema era o seguinte:
Eu estava especificando minhas permissões da seguinte maneira e não estava funcionando.
Estava funcionando bem quando mudei para o seguinte:
fonte
Eu estava tendo esse erro porque tinha a linha abaixo.
Depois de mudar para
problema foi resolvido
fonte
Depois de lutar com esse problema, descobri que todos os valores usados como um valor de recurso de string (também conhecido como @ string /) nos manifestos (das bibliotecas que você está usando também) não podem fazer parte de strings.xml de localizações . Exemplo: se seu arquivo de manifestos usa @ string / app_name, a definição de string / app_name é permitida apenas em seus valores padrão / strings.xml e não no arquivo string.xml alternativo que você fornece para localizações. Espero que ajude ..
fonte
Eu tive o mesmo erro. Eu não tinha letras maiúsculas no nome do meu pacote / aplicativo e limpar o projeto e outras soluções também não me ajudaram. afinal criei novo projeto e copiei meu material para o novo passo a passo e verifiquei se o problema aparece. afinal eu tinha um projeto legal e sem erros, sem redundância. às vezes é difícil encontrar a origem desse erro, então é mais fácil adotar outra abordagem.
Espero que isso ajude alguém!
fonte
Eu enfrentei esse erro quando coloquei a classe Application em um pacote errado!
fonte
Você provavelmente não seguiu as regras de sintaxe de uma tag. por exemplo:
Esta tag está incompleta e causa este erro.
Visão geral do manifesto do aplicativo
fonte
Use
android:resource
em em<meta-data>
vez deandroid:src
eandroid:srcCompat
fonte
Sei que é tarde para responder aqui, mas cometi um erro estranho, então poste minha resposta se ajudar alguém. No meu caso, por engano, adicionei a atividade do iniciador principal como alias
Então, quando tento executar meu aplicativo, recebo um erro
Erro ao instalar o APK
Acabei de remover a palavra "-alias" do registro de atividades e meu aplicativo foi iniciado com sucesso.
fonte