Android Studioのアップデートなどをしていたら、突然こんなエラーが…。
【メッセージ】 ERROR: Failed to parse XML in /Users/(ファイルの場所)/AndroidManifest.xml ParseError at [row,col]:[6,12] Message: expected start or end tag Affected Modules: app |
【メッセージ翻訳】 エラー:/ Users /(ファイルの場所)/AndroidManifest.xmlにあるXMLの解析に失敗しました ParseError at [row、col]:[6,12] メッセージ:開始タグまたは終了タグが必要です 影響を受けるモジュール:アプリ |
エラーは、Xcodeの右下に表示されました。
エラーが表示されたのが、
コードをいじっていたときじゃなかった事と、
リンクになっている「app」をクリックするとファイル(build.gradle(Module: app))が開くものの、
そこにはエラーになりそうな箇所も見当たらなかったので、
ちょっと困ってしまいました…。
もくじ
エラーのあるファイル、AndroidManifest.xmlだった!
「app」にあたるファイルにエラーがあると思い込んでいたら、
エラーがあったのは「AndroidManifest.xml」でした。
いや、文章をよく読めば、エラーがある場所は「AndroidManifest.xml」って書いてありましたね…。
エラーのある行もわかりやすく書いてありました
そして、エラーがある行は、今回のエラーメッセージの場合は
[row、col]:[6,12]
つまり、
6行目の12文字目?のようでした。
(タブを使ったり、日本語を使ったりしているので、
12文字目に当たる部分がどこなのかがちょっと微妙でしたが、エラーになっていたのはそのあたりでした)
今回は、コメントの書き方を間違っていた模様…
エラー内容は、
expected start or end tag(開始タグまたは終了タグが必要です)
というものでしたが、
エラーがあるという行に書かれていたのはコメント文でした。
ただのメモ書き部分になぜエラーが発生しているのかなぁ…と思ったら、
コメントの書き方を間違っていました…!
「AndroidManifest.xml」内に、
//ここにコメントを書いていました
という感じで、「//」の後にコメントを書いていたんですが、
「AndroidManifest.xml」内でのコメントの書き方は
<!–ここにコメントを書いていました–>
これが正解のようです…。
「//」じゃなく、「<!–」と「–>」を使う感じですね。
むしろ、書き方を間違えていたのに、今までよく動いてくれていたなぁ…!
ちなみに、こちらのショートカットをつかえば、
いちいちコメントの書き方を覚えていなくても、一発変換してくれました。
(参考:コメントアウトの仕方【iOSとAndroidの比較】Xcode、Android Studio)
とりあえず、変な文字やスペースが入っていないか確認するのが良さそう
今回はコメントの仕方を間違っていたことが原因でしたが、
エラー内容の
expected start or end tag(開始タグまたは終了タグが必要です)
を見ると、
同じようなエラーが出た時には、
エラーメッセージに書かれているファイルと行番号を確認して、
変な文字(今回のような、コメントでもない・コードでもない文字とか)や、
変なスペース(日本語入力でのスペース)とかが入っていないか
確認するのがいいのかなと思いました。
AndroidManifest.xmlだった場合は、Try Againを忘れずに
さて、書き換えたのに、なぜかエラーが消えないな…と思ったんですが、
ファイルを更新するのを忘れていました。
↑こんな感じの、黄色い帯が、AndroidManifest.xmlの上に出ていると思います。
この「Try Again」をクリックすると、変更した箇所が適用されますー。
ちなみに、文章の意味はこんな感じになります。
Gradle project sync failed. Basic functionality (e.g. editing, debugging) will not work properly. Try Again Open ‘Build’ View Show Log in Finder |
Gradleプロジェクトの同期に失敗しました。基本機能(編集、デバッグなど)は正しく機能しません。 再試行する 「ビルド」ビューを開く Finderでログを見る |