次のxmlを使用して単純なHelloWorldアプリケーションを試しました。
<?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>
私の両方のテキストビューは同じIDを持っています。正常にコンパイルされ、正常に実行され、両方のTextViewがレンダリングされます。また、findViewByid()を実行すると、最初のものが検出され、setTextなどのすべての関数呼び出しが適用されます。理想的には、AAPTはこれをキャッチする必要がありますが、明らかにキャッチしません。プログラマーがIDに依存しない限り、何かをひどく壊すことはありません。つまり、そのようなコードを書くのに十分愚かであるなら、クラッシュするに値するというようなものです。
AAPTはそれについてあまり気にしません。そのため、これは、プログラマーによって明示的なIDが提供されていないViewsの単純な拡張のようなものです。