我的应用程序停止了logcat错误

时间:2014-04-28 13:28:20

标签: logcat

我有这个错误,我不知道为什么!

  

04-28 09:26:55.935:E / AndroidRuntime(1437):致命异常:主

     

04-28 09:26:55.935:E / AndroidRuntime(1437):流程:   com.neurondigital.HighwaySpeed,PID:1437

     

04-28 09:26:55.935:E / AndroidRuntime(1437):   java.lang.RuntimeException:无法启动活动   ComponentInfo {com.neurondigital.HighwaySpeed / com.neurondigital.HighwaySpeed.HighwaySpeed}:   显示java.lang.NullPointerException

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   android.app.ActivityThread.access $ 800(ActivityThread.java:135)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   android.os.Handler.dispatchMessage(Handler.java:102)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   android.os.Looper.loop(Looper.java:136)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   android.app.ActivityThread.main(ActivityThread.java:5017)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   java.lang.reflect.Method.invokeNative(Native Method)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   java.lang.reflect.Method.invoke(Method.java:515)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   dalvik.system.NativeStart.main(原生方法)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):引起:   显示java.lang.NullPointerException

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   com.neurondigital.HighwaySpeed.HighwaySpeed.onCreate(HighwaySpeed.java:40)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   android.app.Activity.performCreate(Activity.java:5231)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):at   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)

     

04-28 09:26:55.935:E / AndroidRuntime(1437):... 11更多

这是代码:

import android.app.Activity;

import android.content.Context;

import android.content.pm.ActivityInfo;

import android.os.Bundle;

import android.os.PowerManager;

import android.os.PowerManager.WakeLock;

import android.view.Display;

import android.view.KeyEvent;

import android.view.Window;

import android.view.WindowManager;

import android.widget.RelativeLayout;

import android.widget.RelativeLayout.LayoutParams;

public class HighwaySpeed extends Activity {

    Surface view;
    WakeLock WL;

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

        //full screen
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        //wake-lock
        PowerManager PM = (PowerManager)getSystemService(Context.POWER_SERVICE);
        WL = PM.newWakeLock(PowerManager.FULL_WAKE_LOCK, "Graphics");
        WL.acquire();

        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

        Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
        int rotation = display.getRotation();
        if(rotation == 0)
            view.default_lanscape = true;
        if(rotation == 180)
            view.default_lanscape = true;
        if(rotation == 90)
            view.default_lanscape = false;
        if(rotation == 270)
            view.default_lanscape = false;
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
        if(keyCode == KeyEvent.KEYCODE_BACK){
            view.back();
            return false;
        }

        return false;
    }

    protected void onPause(){
        super.onPause();
        view.pause();
        WL.release();
    }

    protected void onResume(){
        super.onResume();
        view.resume();
        WL.acquire();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        WL.release();
    }
}

1 个答案:

答案 0 :(得分:0)

在HighwaySpeed.java:40,有一个NullPointerException

如果附上代码,则很容易解决问题。

编辑: 您必须在view = new SurfaceView(this);方法的开头编写onCreate以避免NullPointerException。

主要问题是你没有初始化变量,但代码中还有其他错误,例如,类Surface没有default_lanscape属性,你正试图在{{1}中初始化它}