1

アプリケーションの実行中にこれExceptionが発生し、アプリが停止します。

例外は: ThreadGroup.uncaughtException(Thread, Throwable) line:689

質問をクリアします。次のように、2 つのアクティビティがあります。

1) HomeActivity: 2 番目のアクティビティを開く「エムサッケヤを開く」ボタンを含む

2) EmsakeyyaActivity: これで、Activityいくつかのデータを設定して表示します...

アプリケーションをデバッグすると、ボタンの 2 番目のアクティビティを呼び出すとクラッシュしますkeyListener

public class HomeActivity extends ActionBarActivity 
{
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    setTitle("Home Screen");

    Button emsakeyya_btn=(Button) findViewById(R.id.emsakeyya_btn);
    emsakeyya_btn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            Intent i = new Intent(HomeActivity.this, EmsakeyyaActivity.class);
            startActivity(i);
        }
    });
}

2 番目のアクティビティ

public class EmsakeyyaActivity extends ActionBarActivity {

EmsakeyyaActivity()
{
    fajrTime = new Time();
    shuroqTime = new Time();
    duhrTime = new Time();
    asrTime = new Time();
    maghrebTime = new Time();
    eshaaTime = new Time();
}

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

    String zoneName = "zoneName";
    AllPraysTime(fajrTime,shuroqTime,duhrTime,asrTime,maghrebTime,eshaaTime);

    currentPrayTime = (TextView) findViewById(R.id.currentSalah_lbl2);
    nextPrayTime = (TextView) findViewById(R.id.nxtSalah_lbl2);
    fajrPrayTime = (TextView) findViewById(R.id.fajrPrayTime_lbl2);
    shuroqPrayTime = (TextView) findViewById(R.id.shuroqPrayTime_lbl2);
    duhrPrayTime = (TextView) findViewById(R.id.duhrPrayTime_lbl2);
    asrPrayTime = (TextView) findViewById(R.id.asrPrayTime_lbl2);
    maghrebPrayTime = (TextView) findViewById(R.id.maghrebPrayTime_lbl2);
    eshaaPrayTime = (TextView) findViewById(R.id.eshaaPrayTime_lbl2);

    SetPraysTime();

}

この例外について何か考えはありますか?! そして、私は何をすべきか

4

1 に答える 1

1

以下に示すように、EmsakeyyaActivity のコンストラクターをパブリックにします。

public EmsakeyyaActivity()
{
    fajrTime = new Time();
    shuroqTime = new Time();
    duhrTime = new Time();
    asrTime = new Time();
    maghrebTime = new Time();
    eshaaTime = new Time();
}

また、原則として、onCreate() メソッドでアクティビティを初期化し、コンストラクターを使用しない方がよいでしょう。

于 2015-06-22T18:10:34.390 に答える