ho provato una semplice applicazione Ciao Mondo con il seguente codice XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="text1"
/>
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="text2"
/>
</LinearLayout>
Entrambi i miei textviews avere lo stesso ID. Compila bene, funziona bene, rende sia le TextView, e quando faccio un findViewByid() il primo viene trovato e tutte le mie chiamate di funzione come setText vengono applicate ad esso. Idealmente, l'AAPT dovrebbe prenderlo ma apparentemente no. Non spezzerà qualcosa di terribile a meno che il programmatore non si affidi agli id. Quindi è un po 'come dire: se sei così stupido da scrivere un codice del genere, meriti di schiantarti.
L'AAPT non si preoccuperà troppo di questo. Per questo, è come una semplice estensione di Views senza ID espliciti forniti dal programmatore.
Dai documenti: Un ID non deve essere univoco nell'intero albero, ma deve essere univoco all'interno della parte dell'albero che stai cercando (che potrebbe essere spesso l'intero albero, quindi è meglio essere completamente unico quando possibile). – Lucas