简体   繁体   English

Android:不幸的是,该应用已停止

[英]Android : Unfortunately, app has stopped

I am a beginner with Android, trying to run my first application. 我是Android的初学者,试图运行我的第一个应用程序。 But there's an error in the log file and application get terminated by this message "Unfortunately, app has stopped"! 但是日志文件中有错误,并且应用程序被此消息“不幸的是,应用程序已停止”终止!

Here is my java file: 这是我的Java文件:

public class MainActivity extends ActionBarActivity {

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

    Button mClick=(Button)findViewById(R.id.button1);

    mClick.setOnClickListener(new View.OnClickListener() {


    //@Override
    @SuppressLint("ShowToast")
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Toast t = Toast.makeText(MainActivity.this, R.string.hi, 3000).show();          

    }
            });
}
}

And the log has these errors: 并且日志有以下错误:

04-19 18:50:02.200: E/AndroidRuntime(792): FATAL EXCEPTION: main
04-19 18:50:02.200: E/AndroidRuntime(792): Process: com.example.test, PID: 792
04-19 18:50:02.200: E/AndroidRuntime(792): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test/com.example.test.MainActivity}: java.lang.NullPointerException
04-19 18:50:02.200: E/AndroidRuntime(792):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-19 18:50:02.200: E/AndroidRuntime(792):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-19 18:50:02.200: E/AndroidRuntime(792):  at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-19 18:50:02.200: E/AndroidRuntime(792):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-19 18:50:02.200: E/AndroidRuntime(792):  at android.os.Handler.dispatchMessage(Handler.java:102)
04-19 18:50:02.200: E/AndroidRuntime(792):  at android.os.Looper.loop(Looper.java:136)
04-19 18:50:02.200: E/AndroidRuntime(792):  at android.app.ActivityThread.main(ActivityThread.java:5017)
04-19 18:50:02.200: E/AndroidRuntime(792):  at java.lang.reflect.Method.invokeNative(Native Method)
04-19 18:50:02.200: E/AndroidRuntime(792):  at java.lang.reflect.Method.invoke(Method.java:515)
04-19 18:50:02.200: E/AndroidRuntime(792):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-19 18:50:02.200: E/AndroidRuntime(792):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-19 18:50:02.200: E/AndroidRuntime(792):  at dalvik.system.NativeStart.main(Native Method)
04-19 18:50:02.200: E/AndroidRuntime(792): Caused by: java.lang.NullPointerException
04-19 18:50:02.200: E/AndroidRuntime(792):  at com.example.test.MainActivity.onCreate(MainActivity.java:29)
04-19 18:50:02.200: E/AndroidRuntime(792):  at android.app.Activity.performCreate(Activity.java:5231)
04-19 18:50:02.200: E/AndroidRuntime(792):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-19 18:50:02.200: E/AndroidRuntime(792):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-19 18:50:02.200: E/AndroidRuntime(792):  ... 11 more

Can you spot the problem? 你能发现问题吗?

Your mClick button is not being created, probably because findViewById(R.id.button1) is failing. 您的mClick按钮未创建,可能是因为findViewById(R.id.button1)失败。

Then, because the button is null, when you call a function on it you get a NPE. 然后,由于按钮为空,因此当您在其上调用函数时,会得到一个NPE。

mClick is probably null. mClick可能为空。 Check if R.id.button1 exists in the layout you set on setContentView. 检查在setContentView上设置的布局中是否存在R.id.button1。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM