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>
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"
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.
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.
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.
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"
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.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"
>
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">
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"
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.
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" >
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" />
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"
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.
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.
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:
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