częste problemy pojawiające się w widoku Androida, błąd parsowania XML: prefiks niezwiązany

Mam częsty problem w widoku Androida, 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>
Author: Jaffer Wilson, 2010-02-08

15 answers

Kilka powodów, dla których może się to zdarzyć:

1) widzisz ten błąd z nieprawidłową przestrzenią nazw lub literówką w atrybucie. Podobnie jak' xmlns ' jest błędne, powinno być xmlns:android

2) pierwszy węzeł musi zawierać: xmlns:android="http://schemas.android.com/apk/res/android"

3) Jeśli integrujesz AdMob sprawdź niestandardowe parametry, takie jak ads: adSize, Potrzebujesz

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

4) Jeśli używasz LinerLayout, być może będziesz musiał zdefiniować narzędzia

xmlns:tools="http://schemas.android.com/tools"

 508
Author: Pentium10,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-18 09:35:51

Dodam osobną odpowiedź tylko dlatego, że jej tu nie widzę. Nie jest to w 100% to, o co prosił Pentium10, ale znalazłem się tutaj, szukając Error parsing XML: unbound prefix

Okazało się, że używałem niestandardowych parametrów dla reklam AdMob typu ads:adSize, ale nie dodałem

    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

Do układu. Po dodaniu działało świetnie.

 98
Author: MalcolmOcean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-16 08:18:03

Miałem ten sam problem.

Upewnij się, że prefiks (android: [cokolwiek]) jest napisane poprawnie i napisane poprawnie. W przypadku linii xmlns:android="http://schemas.android.com/apk/res/android" upewnij się, że masz pełny przedrostek xmlns:android i że jest on poprawnie napisany. Podobnie jest z innymi przedrostkami-upewnij się, że są poprawnie napisane i mają android:[name]. To właśnie rozwiązało mój problem.

 57
Author: Daniel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-01 08:25:42

Jak już wspomniałeś, musisz określić właściwą przestrzeń nazw. Widzisz również ten błąd z nieprawidłową przestrzenią nazw.

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns="http://schemas.android.com/apk/res/android"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:padding="10dip">
Nie zadziała.

Zmiana:

xmlns="http://schemas.android.com/apk/res/android"

Do

xmlns:android="http://schemas.android.com/apk/res/android"

Komunikat o błędzie odnosi się do wszystkiego, co zaczyna się "android:", ponieważ XML nie wie, co to jest Przestrzeń nazw "android:".

xmlns:android definiuje to.

 27
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-08 12:46:09

Ten błąd może wystąpić w przypadku, gdy używasz nieokreślonego prefiksu, takiego jak:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TabHost
    XYZ:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >


</TabHost>

Kompilator Androida nie wie, czym jest XYZ, ponieważ nie został jeszcze zdefiniowany.

W Twoim przypadku powinieneś dodać poniżej define do głównego węzła pliku xml.

xmlns:android="http://schemas.android.com/apk/res/android"

 22
Author: Nguyen Minh Binh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-03 03:52:00

Błąd przedrostka dla Wskaźnik ViewPager:

Wraz z następującymi tagami nagłówka w nawiasie:

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"

Dodaj także:

xmlns:app="http://schemas.android.com/apk/res-auto"
To mi pomogło.
 10
Author: amalBit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-10 12:28:33

Dla mnie, dostałem błąd "unbound prefix" w pierwszej linii tutaj, chociaż miałem błędnie napisane android w czwartej linii.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
anrdoid:fillViewport="true"
>
 9
Author: flobacca,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-14 20:02:26

Miałem ten sam problem i okazało się, że rozwiązaniem było dodanie Narzędzia android:do pierwszego węzła. W moim przypadku jest to LineraLayout:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical">
 7
Author: Sebastian Breit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-27 14:11:50

Dorzucę trochę więcej dla początkujących i dla ludzi, takich jak ja, którzy nie rozumieją XML.

Powyższe odpowiedzi są całkiem dobre, ale ogólna odpowiedź jest taka, że potrzebujesz przestrzeni nazw dla dowolnej przestrzeni nazw użytej w konfiguracji.plik xml.

Tłumaczenie: każda nazwa znacznika XML, która ma jest znacznikiem z przestrzenią nazw, gdzie blah jest przestrzenią nazw, a fubar znacznikiem XML. Przestrzeń nazw umożliwia korzystanie z wielu różnych narzędzi do interpretacji XML z ich własnymi nazwami znaczników. Na przykład Intel XDK używa przestrzeni nazw intelxdk i android używa Androida. Dlatego potrzebujesz następujących przestrzeni nazw lub kompilacji wyrzuca krew (tj. błąd parsowania prefiksu XML: unbound), który jest tłumaczony na: użyłeś przestrzeni nazw, ale jej nie zdefiniowałeś.

  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:intelxdk="http://xdk.intel.com/ns/v1"
 3
Author: turbogeek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-24 06:41:19

Ten błąd występuje zwykle, jeśli nie uwzględniłeś poprawnie xmlns:mm, występuje zwykle w pierwszej linii kodu.

Dla mnie było..

Xmlns: mm="http://millennialmedia.com/android/schema"

Że przegapiłem w pierwszej linijce kodu

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:mm="http://millennialmedia.com/android/schema"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="50dp"
android:layout_marginBottom="50dp"
android:background="@android:color/transparent" >
 2
Author: Kailas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-14 08:01:26

W moim przypadku błąd nie był spowodowany żadnym z powyższych problemów z przestrzenią nazw xml. Zamiast tego była to lokalizacja atrybutu android:id - musiała być pierwszą pozycją w deklaracji danego elementu.

Więc to:

<TextView android:layout_width="fill_parent" 
      android:layout_height="wrap_content"
      android:id="@+id/bottomtext" 
      android:singleLine="true" />

... potrzebne do przeczytania tak:

<TextView android:id="@+id/bottomtext" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"
      android:singleLine="true" />
 1
Author: okredo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-15 03:23:01

Poza tym wszystkim, istnieje również scenariusz, w którym ten błąd występuje-

Gdy ty lub twój projekt biblioteki zdefiniujesz własny atrybut int attr.xml i używasz tych atrybutów w pliku układu bez definiowania przestrzeni nazw .

Ogólnie używamy tej definicji przestrzeni nazw w nagłówku naszego pliku układu.

xmlns:android="http://schemas.android.com/apk/res/android"

Następnie upewnij się, że wszystkie atrybuty w pliku powinny zaczynać się od

android:ATTRIBUTE-NAME

Musisz się zidentyfikować, jeśli jakiś twój strój nie zaczyna się od czegoś inne niż android: nazwa atrybutu jak

temp:ATTRIBUTE-NAME

W tym przypadku masz tę "temp" również jako przestrzeń nazw, ogólnie przez włączenie-

xmlns:temp="http://schemas.android.com/apk/res-auto"
 1
Author: Anuj Garg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-10 05:54:59

Wystarczy dodać odpowiednią przestrzeń nazw w znaczniku głównym . xmlns: android="http://schemas.android.com/apk/res/android" Elementy Androida są deklarowane w tej przestrzeni nazw.To samo, co importowanie klasy lub pakietu.

 1
Author: Gevaria Purva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-30 07:00:40

Zwykle mi się to zdarza, gdy źle piszę o Androidzie - po prostu wpisuję andorid lub podobne, i nie jest to oczywiste na pierwszy rzut oka, szczególnie po wielu godzinach programowania, więc po prostu szukam "Androida" jeden po drugim i sprawdzam, czy wyszukiwanie pomija jeden tag - jeśli tak, to mam bliskie spojrzenie i widzę, gdzie była literówka.

 0
Author: Nenad Bulatovic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-12 06:45:53

OK, jest wiele rozwiązań tutaj, ale nie faktycznie wyjaśnić przyczynę problemu, więc zaczynamy:

Gdy widzisz atrybut taki jak android:layout_width="match_parent" część android jest prefiksem, formatem atrybutu jest PREFIX:NAME="VALUE". w XML przestrzenie nazw i prefiksy są sposobami na uniknięcie konfliktów nazewnictwa, na przykład możemy mieć dwa różne atrybuty o tej samej nazwie, ale różne prefiksy, takie jak: a:a="val" i b:a="val".

Aby używać przedrostków takich jak android lub app lub innych należy zdefiniować przestrzeń nazw przy użyciu atrybutu xmlns.

Więc jeśli masz ten problem po prostu znajdź prefiksy, które nie mają zdefiniowanej przestrzeni nazw, jeśli masz tools:... powinieneś dodać przestrzeń nazw narzędzi, jak sugerowały niektóre odpowiedzi, jeśli masz app:... atrybut powinieneś dodać xmlns:app="http://schemas.android.com/apk/res-auto" do elementu głównego

Czytaj dalej:

Przestrzenie nazw XML proste wyjaśnienie

Przestrzenie nazw XML w W3

 0
Author: mohas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-19 21:25:46