1

私は Android 開発に非常に慣れていません (ただし、Cocoa Touch で Obj-C の経験があります)。次の構文エラーが発生したため、最初の Android アプリをテストしていました。

トークン「100000」の構文エラー、無効な VariableDeclaratorId

トークン "11" の構文エラーです。このトークンを削除してください

トークン "2" の構文エラーです。このトークンを削除してください

トークン「5000」の構文エラー、無効な VariableDeclaratorId

トークン「61」の構文エラー、無効な VariableDeclaratorId

トークン「69」の構文エラー、無効な VariableDeclaratorId

それらをダブルクリックすると、ファイル内にあるように見えましたが、R.javaどのように発生したのかわかりません。

   public static final class drawable {
        public static final int 100000=0x7f020000;
        public static final int 11ba=0x7f020001;
        public static final int 2values=0x7f020002;
        public static final int 5000=0x7f020003;
        public static final int 61=0x7f020004;
        public static final int 69=0x7f020005;
   .....

誰かがこれがどのように引き起こされたかを教えてくれれば素晴らしいでしょう。

【アップデート】

MarsAtomicは、Android リソースの命名規則に従わず、おそらく「5000」、「69」という名前の rawable が原因であると示唆しましたが、実際のところ、この場合はそうです。

名前を変更した後、これらの例外は発生しなくなりました。

しかし、数字の名前に画像があるとこれがトリガーされる理由を知りたいです。ありがとう。

4

7 に答える 7

4

私のコメントはなぜか消えてしまいましたが... すべての言語には命名規則があります。慣例は、規則を持たなければならないため、半恣意的なヒューリスティックに基づいていることがよくあります (たとえば、'a1' は変数名を表し、'1' という名前の変数は値と混同される可能性があるため、少し明確になります)。

この回答を標準的な回答として受け入れることも、受け入れないこともできます。個人的には、誰がどのクレジットを取得するかは気にしません。

于 2013-05-05T09:53:07.113 に答える
3

名前を変更した後、この例外は発生しなくなりました。

しかし、なぜこれが起こっているのかを知りたいです。

これらのリソースの名前は、自動生成された Java ソース ファイル ( R.java) でフィールド名として使用され、有効な Java フィールド名ではないためです。Java フィールド名は文字で始める必要があります。フィールド名に使用できる文字の詳細については、JLS を参照してください

(実際、MarsAtomicはこれについて功績を認められているはずですが、再投稿された質問は見ていないようです。)

于 2013-05-05T09:46:52.140 に答える
2

数字で始まる変数名を宣言することはできません。

于 2013-05-05T09:44:57.077 に答える
0

R.class は自動生成されるため、変更すると正しく動作しません。

あなたのプロジェクトをきれいにしてビルドしてください。

于 2013-05-05T13:09:07.080 に答える