androidのネタになります。
いつもどおりtextViewとimageViewをxmlに追加してアクティビティにもオブジェクトを追加してビルドしたのですが
またCannot resolve symbol Rに呼び止められてしまいました(怒)
いつもどおりゴミが溜まったのかと思いクリーンビルドしてみたのですが今度はそれが原因ではないみたいです。
ならばと思い範囲を広げてRebuild projectを実行。ログでサクセスが出てきたので今度こそ
治ったかと思ったらまたCannot resolve symbol R・・・失敗しました。
先人の知識を借りて画面左下のbuild Valiantsを押してデバッグモードからリリースモードに変更して
再度ビルドしてみても結果は変わらず。
やっぱり定義先に問題があるかと思い再度xmlのページにいって再調査。
そういえばimageViewは前のプロジェクトからそのままコピペしたな~もしかしたらこのxmlで使っていない
属性が定義されていてそれが悪さしてるのかと思いそこを重点的に探しました。
すると、使っていないっぽい属性を発見。
<ImageView
android:id=”@+id/image_view”
android:scaleType=”center”
android:contentDescription=”@string/description”←こいつだ!
android:layout_margin=”10dp”
android:layout_width=”match_parent”
android:layout_height=”wrap_content” />
前のプロジェクトでstring.xmlでボタンの名前などを定義するときに使っていたcontentDescription。
こいつはこのプロジェクトでは使っていなかったので迷わず削除して再ビルド。
すると見事にビルドが成功、エラーの原因を突き止めることができました。
前のプロジェクトから似たようなコードをコピペするときは使っていないメソッドや属性を確認してから
組み込みましょう。ということを再実感しました。
とりあえず同じエラーが起きることのないようリファクタリングを厳しくしましょう。