<< Android-Note
リソース中で使えないシンボル名
最近リソースを編集しているときに珍しいエラーに遭遇したのでそれをメモしておきます。
それは文字列リソース(strings.xml)を編集しているときに起こりました。
以下が実際のstrings.xmlの内容です。
<string name="new">New</string>
何の変哲もないように見えますが、次のようなエラーが発生しました。
Description Resource Path Location Type error: invalid symbol: 'new' strings.xml /MyApp/res/values line 12 Android AAPT Problem
文字列の名前を"new"にしたのが悪かったみたいです。
なぜこのようなエラーが出るかというとR.javaのIDの生成方法に原因があるようです。
問題のリソースはR.javaでは次のようなIDとして定義されます。
public final class R { public static final class string { public static final int new = 0x7f050003; } }
ID名にJavaのキーワードが入ってしまうから当然エラーになります。なのでcontinueやpublicのような名前も使うことはできません。
リソース名にはJavaの変数名に違反しない名前をつけなくてはなりません。
© Kaz