2013-01-05 21 views
15

Sto creando un'app per Android che utilizza un file menu.xml nella cartella res. Ma sto ottenendo l'errore di cui sopra. Cosa significa? Come posso ripararlo?manca il prefisso dello spazio dei nomi di Android

menu.xml:

<?xml version="1.0" encoding= "utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

<item id="@+id/my_location" 
android:icon="@drawable/my_location" 
android:title:="Current location" /> 

<item id="@+id/mapview_satellite" 
android:icon="@drawable/satelliteview" 
android:title="Satellite View" /> 

<item id="@+id/mapview_normal" 
android:icon="@drawable/normalview" 
android:title="Normal view" /> 
</menu> 
+2

se si ottiene risposta giusta si prega di upvote –

risposta

22

Change <item id="@+id/my_location"-<item android:id="@+id/my_location". Questo in tutti e tre i posti.

Inoltre, qui: android:title:="Current location" rimuovere i due punti dopo title.

1

creare un file XML all'interno res/menu/ directory del progetto non in in res cartella &

non dimenticate di anteporre gli attributi id.

Prova in questo modo:

<?xml version="1.0" encoding= "utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/my_location" 
     android:icon="@drawable/my_location" 
     android:title="Current location" /> 

    <item android:id="@+id/mapview_satellite" 
     android:icon="@drawable/satelliteview" 
     android:title="Satellite View" /> 

    <item android:id="@+id/mapview_normal" 
     android:icon="@drawable/normalview" 
     android:title="Normal view" /> 
</menu> 
0

hai dimenticato di anteporre gli attributi id. Provate a farlo in questo modo:

<?xml version="1.0" encoding= "utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/my_location" 
     android:icon="@drawable/my_location" 
     android:title="Current location" /> 

    <item android:id="@+id/mapview_satellite" 
     android:icon="@drawable/satelliteview" 
     android:title="Satellite View" /> 

    <item android:id="@+id/mapview_normal" 
     android:icon="@drawable/normalview" 
     android:title="Normal view" /> 
</menu> 
0

c'erano due errore stupido errore

- id isn't it attribute is android:id 
- First itme android:title:= you have written extra colon after title 

qui è implementato il codice

<?xml version="1.0" encoding= "utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/my_location" 
     android:icon="@drawable/my_location" 
     android:title="Current location"/> 
    <item 
     android:id="@+id/mapview_satellite" 
     android:icon="@drawable/satelliteview" 
     android:title="Satellite View"/> 
    <item 
     android:id="@+id/mapview_normal" 
     android:icon="@drawable/normalview" 
     android:title="Normal view"/> 

</menu> 
1

Alcune volte il codice XML potrebbe essere scritto in modo corretto, quindi è necessario per tagliare semplicemente ciò che si ha attualmente e quindi cancellarlo dai numeri di riga, quindi ri-incollarlo e l'errore dovrebbe essere corretto. Se no, allora sai che il tuo codice è sbagliato. L'impostazione predefinita di xml consiste nel riconoscere ciò che è stato messo all'inizio e deve essere rimosso per poter ricominciare. Fidati di me, ho appena trascorso 3 giorni su quello stesso problema e ho fatto esattamente ciò che è stato detto sopra, buona fortuna.

+0

questo ha funzionato per me. –

2

Aggiunta android: prima che l'attributo risolvesse il mio problema.

+0

ha funzionato per me, ha dovuto cambiare '' a '' – user13107

4

Che ci crediate o no, per chiunque cerchi di lavorare con esempi nei libri scaricati, potrebbe essere necessario assicurarsi di avere virgolette reali come il compilatore capisce. Avevo ricevuto lo stesso errore dell'OP e molti errori di analisi simili mentre tentavo di modificare un file XML in piccoli modi. Ho notato che le virgolette dei frammenti di codice incollati erano diverse da quelle sulla mia tastiera (negli snippet si inclinavano a destra, e se le scrivevo io erano diritte su e giù).

So che sembra pazzesco e stentavo a crederci, ma quando ho digitato nuovamente le mie virgolette ha funzionato bene.

10

È inoltre necessario assicurarsi che i seguenti due linee sono nella vostra lista di attributi:

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

Se si omette quelli, Eclipse sarà solo vi darà l'errore "manca il prefisso Android".

0

Se hai qualcosa di simile:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"> 
    <data> 
     <variable name="person" type="com.abc.PersonEntity"/> 
    </data> 

spostare i dati all'interno di tag di layout:

<layout xmlns:android="http://schemas.android.com/apk/res/android" > 
     <data> 
      <variable name="person" type="com.abc.PersonEntity"/> 
     </data> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"> 
... 
Problemi correlati