Immagino sia per aiutare il programmatore.
Se non fosse necessario il @ + id costruzione allora tutti i riferimenti/costruzioni @id sarebbero validi, quindi sarebbe difficile rintracciare un errore, in quanto il compilatore non fallirebbe su riferimenti errati (come sarebbe semplicemente costruire l'id typo).
Inserire in modo diverso, tutti gli errori di riferimento ID dovrebbero essere rilevati in fase di esecuzione.
Edit:
appena notato la risposta simile da Piovezan, per quanto riguarda il tuo commento:
Maybe, but the result is that many devs use @+id everywhere, since there is no error if the id is already defined, and everything works just fine. That means the compiler tests if the id already exist, but not if it does not exist, that's crazy
Poi gli sviluppatori sono utilizzati da l'@ + id costruzione imo.
È ancora molto meglio avere l'opzione di distinguere tra @ + id e @id, dal momento che (per coloro che non usano in modo errato l'@ + id) il compilatore ha la possibilità di dare un errore di compilazione su riferimenti errati .
Edit2
E per affrontare il commento:
That's the link I gave in the first sentence. It explains the difference but does not answer why the '+' cannot be automatically infered by AAPT
credo che possa, semplicemente non lo fa a causa della argomentazione di cui sopra (credo).
http://stackoverflow.com/questions/5025910/difference-between-id-and-id-in-android - fare riferimento a questo – N20084753
@ N20084753 L'ha già menzionato nell'OP. – Piovezan
@ N20084753 Questo è il collegamento che ho dato nella prima frase. Spiega la differenza ma non risponde perché il '+' non può essere automaticamente dedotto da AAPT. –