Android - onPause,onCreate,setContentView无法正常工作 - 对于myMain类型,方法X未定义

时间:2012-06-23 17:32:13

标签: java android windows eclipse android-2.2-froyo

我最近刚刚从几个月前开始接受一个项目。我们重新打开项目,发现了以下几个错误:

public void onCreate(Bundle savedInstanceState) {

给出错误:myMain类型的onCreate(Bundle)方法必须覆盖或实现超类型方法

super.onCreate(savedInstanceState);
    setContentView(R.layout.splashscreen);

给出错误:对于类型Activity,未定义onCreate(Bundle)方法 并且类型为Activity的方法onCreate(Bundle)未定义。

@Override
protected void onPause() {

给出错误:myMain类型的onPause()方法必须覆盖或实现超类型方法

我为第一部分创建了一个具有相同代码的新项目(参见代码块2),并且没有收到任何错误。我确信这是一个小的配置/代码更改我无法确定将在一次扫描中解决所有这些问题。

完整代码是:     包com.myapp.app;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;

public class myMain extends Activity {

MediaPlayer mpSplash;

@Override
// onCreate works like in the activity diagram from tutorial.
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splashscreen);

    mpSplash = MediaPlayer.create(this, R.raw.logo_noise);
    mpSplash.start();
    Thread logoTimer = new Thread()
    {
        public void run()
        {
            try{
                int logoTimer = 0;
                while(logoTimer < 2000)
                {
                sleep(100);
                logoTimer = logoTimer +100;
                }
                startActivity(new Intent ("com.myapp.app.CLEARSCREEN"));
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            finally{
                finish(); // shut down class
            }
        }
    };
    logoTimer.start();
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
}

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    mpSplash.release();
}

@Override
protected void onRestart() {
    // TODO Auto-generated method stub
    super.onRestart();
    mpSplash.pause();
}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    mpSplash.start();
}

@Override
protected void onStop() {
    // TODO Auto-generated method stub
    super.onStop();
}

}

代码块2

import android.app.Activity;
import android.os.Bundle;

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

我搜索过,发现主要是过于复杂和无关的问题,例如: 导入android.r 更新构建路径 重新导入项目 创建对类的新引用。 配置proguard? 以上都没有似乎有效。

任何人都可以提供有关此问题的任何帮助,我们将不胜感激。

2 个答案:

答案 0 :(得分:0)

尝试清理项目项目 - &gt;干净,如果这不解决它。我认为问题在于您将编译器设置设置为Java 1.5而不是Java 1.6。 转到Windows - &gt;偏好 - &gt; Java - &gt;编译器和更改编译器合规性级别为1.6

答案 1 :(得分:0)

  

我最近刚刚从几个月前开始接受一个项目。我们重新打开项目,发现了以下几个错误。

如果您的代码在没有错误之前正在运行,那么它肯定应该正常运行而不会出错。我不确定您为什么在帖子中发布了所有代码,因此......

确保您没有移动android SDK文件夹(默认情况下为android-sdks)。这将导致eclipse像您所描述的那样抛出错误,因为它无法找到Activity等框架类。

  

类型onCreate(Bundle)的方法myMain必须覆盖或实现超类型方法。

此错误意味着eclipse认为onCreate不是Activity类中定义的方法。这让我相信你的eclipse安装已经过时,eclipse无法找到SDK类文件,或者你的eclipse安装完全搞砸了。确保您拥有最新版本的ADT插件(修订版18)。如果这不起作用,那么只需创建一个新项目......如果你能从头开始,那就不值得弄清楚出了什么问题。