main cannot be resolved or is not a field

88,046

Solution 1

Make sure you don't have this in your imports:

import android.R;

but:

import your.application.packagename.R;

Solution 2

Also try: add

import your.application.packagename.R;

and run: eclipse->project->clean..

The error should be gone.

Solution 3

If this is the problem you are encountering then check at the top of your code - you will see:

import android.R

Delete that line and and change it into

import (com.xx.yy)

Replace (com.xx.yy) with your actual package name for the class. This problem occurs mainly when you copy all the XML and Java code of another application and paste it into your new application.

This is an example of how I replaced the android.R packages within one of my own apps (a puzzle game):

package com.pir.PUZZLEGAME_NEW;

import com.pir.PUZZLEGAME_NEW.*;
import com.pir.puzzlegame_old.R;

Good luck!

Solution 4

Delete all your import statements from the class where you are getting this error message.

Then press ctrl+shift+o

Share:
88,046
Android Eve
Author by

Android Eve

Just starting in the world of Android development... New to Java and Eclipse as well.

Updated on August 09, 2022

Comments

  • Android Eve
    Android Eve over 1 year

    This error occurs in setContentView line in this code snippet:

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    

    I understand that in order for R.layout.main to be resolved, a file named res/layout/main.xml must be present.

    It is present and valid (i.e. Eclipse marks it as perfect without any errors). So, what else could cause this error?

    BTW, I already tried Project > Clean. The error persists.