14

そのため、R.java がアイコン (5_content_new.png正確には ) を追加した後にこのエラーが発生することを決定した少し前まで、すべてが非常に順調に進んでいました。

プロジェクトをクリーンアップしてEclipseを再起動しようとしましたが、役に立ちませんでした。

問題のコード:

public static final class drawable {
    public static final int 5_content_new=0x7f020000;
    public static final int ic_launcher=0x7f020001;
    ...
}

のすぐ下に赤い線が表示され5_、次のエラーが表示されます。

Underscores can only be used with source level 1.7 or greater

以前にこのような問題に遭遇した人はいますか?

4

5 に答える 5

24

これは2つの組み合わせです。

  1. Java識別子は数字で始めることはできません。最初の文字は文字である必要があります。

  2. Java 7では、整数リテラルの代替構文が導入されました。たとえば1_000、と同じ1000です。

つまり、コンパイラが...として解析5_content_newしているということ5_ content_newです。これは、ソースレベルがJava 7の場合は妥当であり、Java7を使用していないことを通知します。Java7を使用していた場合、そのコンパイルエラーは次のようになります。整数リテラル(5_)はその時点では有効ではなかったというエラーに置き換えられました。

要するに、コードには、コンパイラーの作成者がコンパイラーの診断コードでそれを予期していなかったほど「壁から外れた」ものが含まれています。


もう1つのポイントは、Javaの変数、メソッド、クラス、またはパッケージ名にアンダースコアを使用すると、スタイル違反になるということです。アンダースコアは、「MAX_VALUE」のようなすべて大文字の定数名でのみ使用する必要があります。

于 2013-02-23T06:35:03.757 に答える
3

私は今、コンパイル中の既存のドローアブルの名前を変更しようとしました-私のAndroidプロジェクトで、Eclipseはこのダイアログを表示しました:

Eclipseエラー (画像がよく見えない場合は、ダイアログボックスに「リソース名は文字で始まる必要があります」と表示されます。

このダイアログを作成する方法は、描画可能なファイルの名前を変更することでした。ドローアブルの元の名前はbutton_blue_normal.9.png、名前を変更して5_button_blue_normal.9.pngEnterキーを押しました。Enterキーを押すとすぐにダイアログがポップアップしました。

私はこれを知りませんでしたが、ドローアブルのファイル名の最初に、数字ではなく文字が必要になるようです。

于 2013-02-23T05:41:23.223 に答える
1

私はパーティーに遅れていることを知っていますが、ActionBar コンポーネントを使い始めたときに、この問題に遭遇しました。

ScootrNova の回答は、私を解決策に導きました。問題は、チュートリアルで使用するためにダウンロードした Android 推奨のアイコン パックでした。すべてのファイル名は整数で始まります (1_xxx.png など)。使用していないものを削除し、他の名前を文字で始まる名前に変更し (例として「icon_xxx.png」を使用しました)、エラーなしでコンパイルしました。

于 2013-09-23T20:06:15.200 に答える
1

私は同じ問題を抱えていましたが、最初ではないテキストの後に数字を入れて解決しました。行2_Activityがあり、それをActivity2に変更しました。それが私の解決策でした。それが誰かを助けることを願っています。

于 2014-05-07T21:47:51.537 に答える
0

私も同じ問題を抱えていました。解決策: res ファイル、drawlables、または xml 内を調べて、(number underscore string) で始まるファイルまたは文字列の名前を 1_string から string_1 に変更します。

これが問題の解決に役立つことを願っています。

于 2014-09-16T13:45:18.390 に答える