Eu tenho um problema frequente na visualização android Error parsing XML: unbound prefix on Line 2
,.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:id="@+id/myScrollLayout"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:layout_width="fill_parent"
android:text="Family" android:id="@+id/Family"
android:textSize="16px" android:padding="5px"
android:textStyle="bold" android:gravity="center_horizontal">
</TextView>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:scrollbars="vertical">
<LinearLayout android:orientation="vertical" android:id="@+id/myMainLayout"
android:layout_width="fill_parent" android:layout_height="wrap_content">
</LinearLayout>
</ScrollView>
</LinearLayout>
xml
android
eclipse
android-linearlayout
Pentium10
fonte
fonte
Respostas:
Algumas razões pelas quais isso pode acontecer:
1) Você vê esse erro com um espaço para nome incorreto ou um erro de digitação no atributo. Como 'xmlns' está errado, deve ser
xmlns:android
2) O primeiro nó precisa conter:
xmlns:android="http://schemas.android.com/apk/res/android"
3) Se você estiver integrando a AdMob, verifique os parâmetros personalizados
ads:adSize
, como :xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
4) Se você estiver usando,
LinearLayout
pode ser necessário definir ferramentas:xmlns:tools="http://schemas.android.com/tools"
fonte
Vou adicionar uma resposta separada apenas porque não a vejo aqui. Não é 100% o que o Pentium10 pediu, mas acabei aqui pesquisando
Error parsing XML: unbound prefix
Acontece que eu estava usando parâmetros personalizados para anúncios da AdMob como
ads:adSize
, mas não tinha adicionadopara o layout. Depois que eu adicionei, funcionou muito bem.
fonte
Eu tenho esse mesmo problema.
Verifique se o prefixo (android: [tanto faz]) está escrito corretamente e escrito corretamente. No caso da linha,
xmlns:android="http://schemas.android.com/apk/res/android"
verifique se você tem o prefixo completoxmlns:android
e se está escrito corretamente. O mesmo acontece com outros prefixos - verifique se eles estão escritos corretamente e possuemandroid:[name]
. Foi isso que resolveu meu problema.fonte
Como você mencionou, você precisa especificar o espaço para nome correto . Você também vê esse erro com um espaço para nome incorreto.
não funciona.
fonte
Este erro pode ocorrer no caso de você usar prefixo não definido, como:
O compilador Android não sabe o que é XYZ, pois ainda não foi definido.
No seu caso, você deve adicionar abaixo define o nó raiz do arquivo xml.
fonte
Junto com as seguintes tags de cabeçalho em seu parentLayout:
Adicione também:
Isso fez o truque para mim.
fonte
Para mim, recebi o erro "prefixo não acoplado" na primeira linha aqui, apesar de ter digitado incorretamente o android na quarta linha.
fonte
Eu tive o mesmo problema e descobri que a solução era adicionar o android: tools ao primeiro nó. No meu caso, é um LineraLayout:
fonte
Vou falar um pouco mais para os novatos e para as pessoas, como eu, que não entendem XML.
As respostas acima são bastante boas, mas a resposta geral é que você precisa de um espaço para nome para qualquer espaço usado no arquivo config.xml.
Tradução: qualquer nome de marca XML que possui é uma marca com um espaço para nome em que blá é o espaço para nome e fubar é a marca XML. O espaço para nome permite que você use muitas ferramentas diferentes para interpretar o XML com seus próprios nomes de tags. Por exemplo, o Intel XDK usa o espaço de nome intelxdk e o Android usa android. Portanto, você precisa dos seguintes espaços para nome ou a compilação lança sangue (por exemplo, Erro ao analisar XML: prefixo não acoplado) que é traduzido para: Você usou um espaço para nome, mas não o definiu.
fonte
OK, existem muitas soluções aqui, mas na verdade não explicam a causa raiz do problema, então vamos lá:
quando você vê um atributo como
android:layout_width="match_parent"
aandroid
peça como prefixo, o formato para um atributo aqui éPREFIX:NAME="VALUE"
. em XML, espaços para nome e prefixos são maneiras de evitar conflitos de nomenclatura. Por exemplo, podemos ter dois atributos distintos com o mesmo nome, mas prefixos diferentes como:a:a="val"
eb:a="val"
.Para usar prefixos como esse
android
ouapp
qualquer outro, você deve definir um espaço para nome usandoxmlns
atributoportanto, se você tiver esse problema, localize prefixos que não tenham um espaço para nome definido; se você tiver
tools:...
, adicione o espaço para nome das ferramentas, conforme sugerido por algumas respostas; se tiver umapp:...
atributo, adicionexmlns:app="http://schemas.android.com/apk/res-auto"
ao elemento raizLeitura adicional:
Explicações simples de namespaces XML
Namespaces XML no W3
fonte
Esse erro geralmente ocorre se você não incluiu o
xmlns:mm
arquivo corretamente, geralmente ocorre na primeira linha do código.para mim foi ..
xmlns: mm = "http://millennialmedia.com/android/schema"
que eu perdi na primeira linha do código
fonte
No meu caso, o erro não foi causado por nenhum dos problemas de espaço para nome xml acima. Em vez disso, era a localização do
android:id
atributo - ele precisava ser o primeiro item na declaração do elemento específico.Então, é isso:
... precisava ler assim:
fonte
Além de tudo isso, também há um cenário em que esse erro ocorre -
Quando você ou seu projeto de biblioteca define o atributo personalizado int attr.xml, e utiliza esses atributos no arquivo de layout sem definir o espaço para nome.
Geralmente usamos essa definição de namespace no cabeçalho do nosso arquivo de layout.
Em seguida, verifique se todos os atributos no seu arquivo devem começar com
Você precisa identificar se alguns dos seus attirbute não estão começando com algo diferente do android: ATTRIBUTE-NAME like
Nesse caso, você tem esse "temp" também como espaço para nome, geralmente incluindo:
fonte
Você só precisa adicionar um espaço de nome adequado na sua tag raiz. xmlns: android = "http://schemas.android.com/apk/res/android" Os elemets do Android são declarados neste espaço de nome. É o mesmo que importar classe ou pacote.
fonte
Geralmente acontece comigo quando eu digito incorretamente o android - apenas digito andorid ou semelhante, e não é óbvio à primeira vista, especialmente depois de muitas horas de programação, então faço uma pesquisa por "android" um por um e ver se a pesquisa ignora um tag - se isso acontecer, eu dou uma olhada e vejo onde houve erro de digitação.
fonte
Eu recebi esse erro no Xamarin quando estava usando
em um arquivo de layout sem instalar o pacote nuget para android.support.v7.widget.CardView
A instalação do pacote de nuget aplicável corrigiu o problema. Espero que ajude, não encontrei esta resposta em nenhum lugar da lista
fonte