Saya sering mengalami masalah dalam tampilan 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
sumber
sumber
Jawaban:
Beberapa alasan mengapa hal ini dapat terjadi:
1) Anda melihat kesalahan ini dengan namespace yang salah, atau salah ketik pada atribut. Seperti 'xmlns' salah, seharusnya
xmlns:android
2) Node pertama harus berisi:
xmlns:android="http://schemas.android.com/apk/res/android"
3) Jika Anda mengintegrasikan AdMob, periksa parameter khusus seperti
ads:adSize
, yang Anda butuhkanxmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
4) Jika Anda menggunakan
LinearLayout
Anda mungkin harus mendefinisikan alat:xmlns:tools="http://schemas.android.com/tools"
sumber
Saya akan menambahkan jawaban terpisah hanya karena saya tidak melihatnya di sini. Ini bukan 100% apa yang diminta Pentium10, tapi saya berakhir di sini dengan mencari
Error parsing XML: unbound prefix
Ternyata saya menggunakan parameter khusus untuk iklan AdMob
ads:adSize
, tetapi saya belum menambahkanke tata letak. Setelah saya menambahkannya, itu bekerja dengan baik.
sumber
Saya punya masalah yang sama.
Pastikan bahwa awalan (android: [apa pun]) dieja dengan benar dan ditulis dengan benar. Dalam kasus garis
xmlns:android="http://schemas.android.com/apk/res/android"
pastikan bahwa Anda memiliki awalan penuhxmlns:android
dan dieja dengan benar. Sama dengan awalan lainnya - pastikan sudah dieja dengan benar dan milikiandroid:[name]
. Inilah yang memecahkan masalah saya.sumber
Seperti yang Anda sebutkan, Anda perlu menentukan namespace yang tepat . Anda juga melihat kesalahan ini dengan namespace yang salah.
tidak akan berfungsi.
sumber
Kesalahan ini dapat terjadi jika Anda menggunakan awalan yang tidak ditentukan seperti:
Kompiler Android tidak tahu apa itu XYZ karena belum ditentukan.
Dalam kasus Anda, Anda harus menambahkan define di bawah ini ke root node dari file xml.
sumber
Seiring dengan tag tajuk berikut di parentLayout Anda:
Juga tambahkan:
Ini berhasil bagi saya.
sumber
Bagi saya, saya mendapat kesalahan "awalan tak terikat" di baris pertama di sini, meskipun saya salah eja android di baris keempat.
sumber
Saya memiliki masalah yang sama, dan menemukan bahwa solusinya adalah menambahkan android: alat ke simpul pertama. Dalam kasus saya ini adalah LineraLayout:
sumber
Saya akan memberikan sedikit lebih banyak untuk pemula dan untuk orang-orang, seperti saya, yang tidak mengerti XML.
Jawaban di atas cukup bagus, tetapi jawaban umumnya adalah Anda memerlukan namespace untuk setiap namespace yang digunakan dalam file config.xml.
Terjemahan: Setiap nama tag XML yang memiliki adalah tag dengan namespace di mana bla adalah namespace dan fubar adalah tag XML. Namespace memungkinkan Anda menggunakan banyak alat yang berbeda untuk menafsirkan XML dengan nama tag mereka sendiri. Misalnya, Intel XDK menggunakan namespace intelxdk dan android menggunakan android. Dengan demikian Anda memerlukan namespace berikut atau build yang memuntahkan darah (mis. Kesalahan parsing XML: awalan tidak terikat) yang diterjemahkan ke: Anda menggunakan namespace, tetapi tidak mendefinisikannya.
sumber
OK, ada banyak solusi di sini tetapi tidak benar-benar menjelaskan akar penyebab masalah jadi di sini kita mulai:
ketika Anda melihat atribut seperti
android:layout_width="match_parent"
yangandroid
bagian adalah awalan, format untuk atribut di sini adalahPREFIX:NAME="VALUE"
. dalam XML, ruang nama dan awalan adalah cara untuk menghindari konflik penamaan misalnya kita dapat memiliki dua atribut berbeda dengan nama yang sama tetapi awalan yang berbeda seperti:a:a="val"
danb:a="val"
.untuk menggunakan awalan seperti
android
atauapp
lainnya, Anda harus mendefinisikan namespace menggunakanxmlns
atribut.jadi jika Anda memiliki masalah ini, temukan saja awalan yang tidak memiliki namespace yang ditentukan, jika Anda memiliki
tools:...
Anda harus menambahkan alat namespace seperti beberapa jawaban yang disarankan, jika Anda memilikiapp:...
atribut Anda harus menambahkanxmlns:app="http://schemas.android.com/apk/res-auto"
ke elemen rootBacaan lebih lanjut:
XML Namespaces penjelasan sederhana
Ruang nama XML di W3
sumber
Kesalahan ini biasanya terjadi jika Anda belum memasukkan dengan
xmlns:mm
benar, itu terjadi biasanya di baris pertama kode.bagi saya itu ..
xmlns: mm = "http://millennialmedia.com/android/schema"
yang saya lewatkan di baris pertama kode
sumber
Dalam kasus saya kesalahan ini tidak disebabkan oleh masalah namespace xml di atas. Alih-alih itu adalah lokasi
android:id
atribut - itu harus menjadi item pertama dalam deklarasi elemen tertentu.Jadi ini:
... perlu dibaca seperti ini:
sumber
Selain semua ini, ada juga skenario di mana kesalahan ini terjadi-
Ketika Anda atau proyek perpustakaan Anda mendefinisikan atribut kustom int attr.xml, Dan Anda menggunakan atribut ini dalam file tata letak Anda tanpa mendefinisikan namespace.
Secara umum kami menggunakan definisi namespace ini di header file layout kami.
Kemudian pastikan semua atribut dalam file Anda mulai dengan
Anda perlu mengidentifikasi jika beberapa attirbute Anda tidak memulai dengan sesuatu selain android: ATTRIBUTE-NAME seperti
Dalam hal ini Anda memiliki "temp" ini juga sebagai namespace, umumnya dengan menyertakan-
sumber
Anda hanya perlu menambahkan ruang nama yang tepat di tag root Anda. xmlns: android = "http://schemas.android.com/apk/res/android" Elemet Android dideklarasikan dalam ruang nama ini. Sama dengan mengimpor kelas atau paket.
sumber
Ini biasanya terjadi pada saya ketika saya salah mengeja android - Saya hanya mengetik andorid atau sejenisnya, dan itu tidak jelas pada pandangan pertama terutama setelah berjam-jam pemrograman, jadi saya hanya melakukan pencarian "android" satu per satu dan melihat apakah pencarian melompati satu tag - jika tidak maka saya melihat dari dekat dan saya melihat di mana kesalahan ketik.
sumber
Saya mendapatkan kesalahan ini di Xamarin ketika saya menggunakan
dalam file layout tanpa menginstal paket nuget untuk android.support.v7.widget.CardView
Menginstal paket nuget yang berlaku memperbaiki masalah tersebut. Semoga ini bisa membantu, saya tidak melihat jawaban ini di mana pun dalam daftar
sumber