Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
emulator和don'中的代码正在崩溃;我不知道为什么。android/java开发新手_Java_Android_Android Emulator - Fatal编程技术网

emulator和don'中的代码正在崩溃;我不知道为什么。android/java开发新手

emulator和don'中的代码正在崩溃;我不知道为什么。android/java开发新手,java,android,android-emulator,Java,Android,Android Emulator,我对android和java开发都是新手。我正在尝试建立一个简单的应用程序。目前非常简单,但我似乎无法运行代码。当我在模拟器中运行应用程序时,它会发出一个警报,说我的应用程序已停止 这是我的密码: package com.example.ultimatescoreclock; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.Window; i

我对android和java开发都是新手。我正在尝试建立一个简单的应用程序。目前非常简单,但我似乎无法运行代码。当我在模拟器中运行应用程序时,它会发出一个警报,说我的应用程序已停止

这是我的密码:

package com.example.ultimatescoreclock;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import android.os.CountDownTimer;

public class MainActivity extends Activity {

    // variables for the clock
    byte minRemaining = 0;
    byte secRemaining = 0;
    long msRemaining = 360000;  // six minutes
    TextView mainClock = (TextView) findViewById(R.id.clockMain);

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

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    public byte getMinutes(long millisUntilFinished) {
        return (byte) (millisUntilFinished / 60000);
    }

    public void onMainClockClick() {
        StringBuilder str = new StringBuilder("");

        str.append(minRemaining + ":" + secRemaining);
        mainClock.setText(str);
    }
}
有人能告诉我我犯了什么愚蠢的错误吗?仅供参考-我的XML文档为
R.id.mainClock
TextView设置了onClick属性

mainClock = (TextView) findViewById(R.id.clockMain);
必须将置于
setContentView()之后

这是因为您首先必须设置
活动
使用的布局,然后才能使用它。正在发生的是您的对象正在被创建,而您的全局变量(mainClock)正在访问一些还不存在的东西,因为
onCreate()
尚未被调用

因此更改
TextView mainClock=(TextView)findViewById(R.id.clockMain)

TextView mainClock;
onCreate()应该是这样的

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mainClock = (TextView) findViewById(R.id.clockMain); //finds the clock TextView
    }
必须将置于
setContentView()之后

这是因为您首先必须设置
活动
使用的布局,然后才能使用它。正在发生的是您的对象正在被创建,而您的全局变量(mainClock)正在访问一些还不存在的东西,因为
onCreate()
尚未被调用

因此更改
TextView mainClock=(TextView)findViewById(R.id.clockMain)

TextView mainClock;
onCreate()应该是这样的

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mainClock = (TextView) findViewById(R.id.clockMain); //finds the clock TextView
    }

-您可以在
setContentView()方法之前定义不初始化
视图

-
TextView mainClock=(TextView)findViewById(R.id.clockMain)之前的
设置内容视图()
导致崩溃。

-它的只有在
setContentView()
方法之后,才能将ID分配给
视图
,因为直到
视图
未初始化

-这就是使用
setContentView(…)
的全部意义,它将膨胀
XML布局
文件,直到您拥有某种膨胀视图,您将无法获得对其任何部分的引用

例如:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mainClock = (TextView) findViewById(R.id.clockMain); 
    }

-您可以在
setContentView()方法之前定义不初始化
视图

-
TextView mainClock=(TextView)findViewById(R.id.clockMain)之前的
设置内容视图()
导致崩溃。

-它的只有在
setContentView()
方法之后,才能将ID分配给
视图
,因为直到
视图
未初始化

-这就是使用
setContentView(…)
的全部意义,它将膨胀
XML布局
文件,直到您拥有某种膨胀视图,您将无法获得对其任何部分的引用

例如:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mainClock = (TextView) findViewById(R.id.clockMain); 
    }