18023


このプログラムでのエラーを治していただける方、お願いします。

[code]

    package a.a;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    public class A extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_a);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }
    
[/code]

そして、エラーが、  
getMenuInflater().inflate(R.menu.menu);  
の行で、  
この行に複数マーカーがあります  
\- menu は解決できないか、フィールド  
ではありません  
\- menu は解決できないか、フィールド  
ではありません

if (id == R.id.action_settings) {  
の行で  
action_settings は解決できないか、フィールドではありません

というエラーが出ます。  
R.javaの中にmenuという項目が無いからだと思い、追加したりしても元に戻ってしまいます。また、R.idの中にもやはりaction_settingsが無くて、どうしたら追加できるか、などが分からず四時間くらい格闘しています。どなたか解決できる方、教えてください。


CC BY-SA 3.0
2015-10-17T07:20:42.070
17748
2015-10-24T11:47:12.070
2015-10-17T10:04:49.037
5044
12819
question
android java eclipse
R.javaの中身


R.javaはres配下の各種リソースファイルを元にビルド時に生成・上書きされるものなので  
おそらく、コメントにあるようにres/menu/menu.xmlを消してしまったものと思われます。

上記ファイルなどに問題はないのに、R.javaに該当フィールドが無い場合は  
ビルドが出来なくて、現状のリソース構成でR.javaが生成されないという状態かも知れません。  
この場合はビルドを無理矢理にでも通してしまえば良いので、  
エラー箇所を全てコメントアウトして

[code]

    public class A extends Activity {
    
        // @Override
        // protected void onCreate(Bundle savedInstanceState) {
        //     super.onCreate(savedInstanceState);
        //     setContentView(R.layout.activity_a);
        // }
    
        (中略)
    }
    
[/code]

などとして、一度ビルドを通してからコメントアウト箇所を元に戻してみると  
R.javaの中身が更新されてエラー箇所の赤線が消えたりしないでしょうか？


CC BY-SA 3.0
2015-10-24T11:47:12.070
18023
2015-10-24T11:47:12.070
12943
17748
answer