我无法解决的错误消息

时间:2013-04-25 05:45:54

标签: android

我收到此错误消息:必须在添加内容之前调用requestFeature()。我在stackowerflow上已经阅读了有关此错误消息的其他问题,如果我理解它是正确的,那就是在requestFeature()之前不要调用setContentView()。但这不是我在onCreate方法中所做的吗?或者错误可能与其他事情有关?我很困惑,并会提前帮助解决这个错误!谢谢!

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main);

    // Set screen to landscape
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    // Remove title from screen
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    // Set screen to full screen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    // Create a new object of GameLoop and pass this context
    gameLoop = new GameLoop(this);
    gameLoop.setOnTouchListener(this);
    setContentView(gameLoop);
}

编辑:LogCat

04-25 08:19:07.937: I/ApplicationPackageManager(6365): cscCountry is not German : NEE
04-25 08:19:08.085: W/dalvikvm(6365): threadid=9: thread exiting with uncaught exception (group=0x40018578)
04-25 08:19:08.101: E/AndroidRuntime(6365): FATAL EXCEPTION: Thread-10
04-25 08:19:08.101: E/AndroidRuntime(6365): java.lang.NullPointerException
04-25 08:19:08.101: E/AndroidRuntime(6365):     at  com.android.mergemania.GameLoop.drawObjects(GameLoop.java:78)
04-25 08:19:08.101: E/AndroidRuntime(6365):     at  com.android.mergemania.GameLoop.run(GameLoop.java:63)
04-25 08:19:08.101: E/AndroidRuntime(6365):     at java.lang.Thread.run(Thread.java:1019)

2 个答案:

答案 0 :(得分:2)

您必须在请求窗口功能后设置方向。您的陈述必须按以下顺序

protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    // Remove title from screen
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    // Set screen to full screen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    // Set screen to landscape
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    // Create a new object of GameLoop and pass this context
    gameLoop = new GameLoop(this);
    gameLoop.setOnTouchListener(this);
    setContentView(gameLoop);
}

答案 1 :(得分:1)

尝试这个:

protected void onCreate(Bundle savedInstanceState) {

requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main);

    // Set screen to landscape
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    // Remove title from screen

    // Set screen to full screen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    // Create a new object of GameLoop and pass this context
    gameLoop = new GameLoop(this);
    gameLoop.setOnTouchListener(this);
    setContentView(gameLoop);
}