Android emulator 为什么会出现空指针异常?

Android emulator 为什么会出现空指针异常?,android-emulator,textview,android-manifest,handler,runnable,Android Emulator,Textview,Android Manifest,Handler,Runnable,这个问题的标题描述了我的问题。我已经试着修复了一段时间,我已经厌倦了搜索,希望得到一些帮助。在我添加处理程序和运行程序之前,它一直有效。我正在尝试制作一个应用程序,它是一个简单的时钟应用程序,用户可以设置为他们想要的任何时间。每当我去运行应用程序时,它就会打开,然后说它无法正常启动。这是一个由另一个活动设置的活动,然后它更改接收到的值,并在文本视图中显示这些值 package CoopFun.Clocks; import android.os.Bundle; import and

这个问题的标题描述了我的问题。我已经试着修复了一段时间,我已经厌倦了搜索,希望得到一些帮助。在我添加处理程序和运行程序之前,它一直有效。我正在尝试制作一个应用程序,它是一个简单的时钟应用程序,用户可以设置为他们想要的任何时间。每当我去运行应用程序时,它就会打开,然后说它无法正常启动。这是一个由另一个活动设置的活动,然后它更改接收到的值,并在文本视图中显示这些值

   package CoopFun.Clocks;

  import android.os.Bundle;
  import android.os.Handler;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.view.Window;
  import android.widget.TextView;
  import android.content.Intent;
  import android.app.Activity;

public class ClockMain extends Activity {

int Hours;
int Minutes;
int Seconds;

String TimeOfDayS;

TextView HoursMainV;
TextView MinutesMainV;
TextView SecondsMainV;
TextView TimeOfDayMainV;

Timer oneSecond;



public void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    setContentView(R.layout.clock_main);
    requestWindowFeature(Window.FEATURE_NO_TITLE);


    Bundle extras = getIntent().getExtras();
        if (extras == null) {
            return;
        }
    int Hour = extras.getInt("HoursS");
    Hour = Hours;
    int Minute = extras.getInt("MinutesS");
    Minute = Minutes;
    int Second = extras.getInt("SecondsS");
    Second = Seconds;
    String TimeOfDaySs = extras.getString("TimeOfDayS");
    TimeOfDaySs = TimeOfDayS;

    HoursMainV = (TextView) findViewById(R.id.HoursMainV);
    HoursMainV.setText(""+Hour);

    MinutesMainV = (TextView) findViewById(R.id.MinutesMainV);
    MinutesMainV.setText(":"+Minute);

    SecondsMainV = (TextView) findViewById(R.id.SecondsMainV);
    SecondsMainV.setText(":"+Second);

    TimeOfDayMainV = (TextView) findViewById(R.id.TimeOfDayMainV);
    TimeOfDayMainV.setText(" "+TimeOfDaySs);
    final Handler handler=new Handler();
    final Runnable r = new Runnable()
    {
        public void run() 
        {
            ++Seconds;
            if(Seconds == 60){
                ++Minutes;
                Seconds = 0;
                if(Minutes == 60) {
                    ++Hours;
                    Minutes = 0;
                    if(Hours == 12){
                        if(TimeOfDayS.equals("AM")) {
                            TimeOfDayS = "PM";
                        } else{
                            TimeOfDayS = "AM";
                        }
                        Hours = 0;
                    }
                }
            }
            HoursMainV.append(""+Hours);
            if(Minutes <=9) {
                MinutesMainV.append(":0"+Minutes);
            } else {
                MinutesMainV.append(":"+Minutes);
            }
            if(Seconds <=9) {
                SecondsMainV.append(":0"+Seconds);
            } else {
                SecondsMainV.append(":"+Seconds);
            }
            TimeOfDayMainV.append(" " + TimeOfDayS);
            handler.postDelayed(this, 1000);
        }
    };

    handler.postDelayed(r, 1000);
}
}
package-CoopFun.Clocks;
导入android.os.Bundle;
导入android.os.Handler;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.Window;
导入android.widget.TextView;
导入android.content.Intent;
导入android.app.Activity;
公共类ClockMain扩展活动{
整小时;
整数分钟;
整数秒;
字符串时间段;
文本视图HoursMainV;
文本视图分钟数;
TextView第二视图;
文本查看Daymainv的时间;
计时器一秒;
创建公共void(Bundle){
super.onCreate(bundle);
setContentView(右布局,主时钟);
requestWindowFeature(窗口。功能\u无\u标题);
Bundle extras=getIntent().getExtras();
如果(附加==null){
返回;
}
整小时=额外的时间(“小时”);
小时=小时;
int minutes=extras.getInt(“分钟数”);
分钟=分钟;
int Second=extras.getInt(“SecondsS”);
秒=秒;
String TimeOfDayS=extras.getString(“TimeOfDayS”);
TimeOfDayS=TimeOfDayS;
HoursMainV=(TextView)findViewById(R.id.HoursMainV);
HoursMainV.setText(“+”小时);
MinutesMainV=(TextView)findViewById(R.id.MinutesMainV);
MinutesMainV.setText(“:”+分钟);
SecondsMainV=(TextView)findViewById(R.id.SecondsMainV);
SecondsMain.setText(“:”+秒);
TimeOfDayMainV=(TextView)findViewById(R.id.TimeOfDayMainV);
每日时间v.setText(“+每日时间”);
最终处理程序=新处理程序();
最终可运行r=新可运行()
{
公开募捐
{
++秒;
如果(秒==60){
++会议记录;
秒=0;
如果(分钟==60){
++小时数;
分钟=0;
如果(小时==12){
if(TimeOfDayS.equals(“AM”)){
TimeOfDayS=“PM”;
}否则{
TimeOfDayS=“AM”;
}
小时=0;
}
}
}
HoursMainV.追加(“+Hours”);
如果(分钟)
用以下代码更改上述代码::

int Hour = extras.getInt("HoursS");
Hours = Hour;
int Minute = extras.getInt("MinutesS");
Minutes = Minute;
int Second = extras.getInt("SecondsS");
Seconds = Second;
String TimeOfDaySs = extras.getString("TimeOfDayS");
TimeOfDayS = TimeOfDaySs;
简单地说,您得到了空指针异常bcoz,您将空值设置为小时、分钟、秒和时间并访问它们

干杯

    <?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="CoopFun.Clocks"
  android:versionCode="1"
  android:versionName="1.0">


<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Clock"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity>
        <activity android:name=".ClockMain">
    </activity>

</application>
</manifest>
int Hour = extras.getInt("HoursS");
Hour = Hours;
int Minute = extras.getInt("MinutesS");
Minute = Minutes;
int Second = extras.getInt("SecondsS");
Second = Seconds;
String TimeOfDaySs = extras.getString("TimeOfDayS");
TimeOfDaySs = TimeOfDayS;
int Hour = extras.getInt("HoursS");
Hours = Hour;
int Minute = extras.getInt("MinutesS");
Minutes = Minute;
int Second = extras.getInt("SecondsS");
Seconds = Second;
String TimeOfDaySs = extras.getString("TimeOfDayS");
TimeOfDayS = TimeOfDaySs;