質問: PCを新しくしたのでAndroidStudioをインストールしたのですが、前回は出なかったエラーが出て困っています。 新しくプロジェクトを作ると、 `AndroidManifest.xml` ファイルの `android:theme="@style/AppTheme"` にエラーが出てしまいます。カーソルを合わせると「Top level element is not completed」というメッセージ翻訳サイトで見る限りパスの間違いなのかなとおもい、パスを `"@style/AppTheme"`から `"@styles/AppTheme"` や `"@values/style/AppTheme"` にするなど試してみたのですが解決できませんでした。 さらに不思議なことに赤線が入っているのにビルドは完了してしまいます。 状況をより具体的にするために動画をとりました。(約3分) なにか、原因などがお分かりになる方ご連絡お願いします。 よろしくおねがいします。
回答: Language Injection という機能が誤作動しているように見えます。 参考 Android Studio (IntelliJ IDEA) の Language Injection - ブライテクノBlog 電球アイコンをクリックしたとき(動画内では2:02あたり)に `Edit XML Fragment` というメニューが出ていますが、 Android Studio はこの文字列が XML だと思い込んでいます。そのため `@style/AppTheme` を XML として検証してしまい、 `Top level element is not completed` (トップレベルの要素が完了していない)というエラーが出ています。 なのでメニューの一番下に表示されている `Uninject language/reference` を選択すれば、エラーは出なくなるかと思います。 一方、実際にはこの文字列が XML である必要はないので、ビルドは問題なく通ります。 同様の事例はGoogleCodeや本家SOにも報告されていますね・・・。 * Issue 59377: Injecting language causes a persistent "Top level element is not completed" error * android - Error in ImageButtons at src:"@drawable/..." Top level element is not completed - Stack Overflow