2017-08-24 13 views
-3

私のアプリではランダムな名前を取得することに焦点を当てています。スプラッシュ画面の時間が終了すると、「残念ながら、yourappは停止しました」というAndroidシステムの通信が表示されます。私は何が起こっているのか分からない。なぜなら、すべてがうまくいくように見えてエラーは表示されないからだ。ここに私のコードです:私の単純なアプリケーションがクラッシュし、私はなぜわからない

TextView textOne; 
    String [] Names = {"Johnny", "Dominic", "Pablo", "Peter", "Frank"}; 

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

     textOne = (TextView) findViewById(R.id.textView2); 
     Intent welcomeintent = getIntent(); 
    } 

    public void sayHello (View view) { 
     int rando = (int) (Math.random() * 5); 
     textOne.setText(Names[rando]); 
    } 

は覚えておいてください、あなたは上のレイアウトを設定した後findViewById()のみ動作します。

public class MainActivity extends AppCompatActivity { 

    private static int SPLASH_TIME_OUT = 4000; 

    TextView mauncher; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mauncher = (TextView) findViewById(R.id.textView1); 
     Typeface typeface0 = Typeface.createFromAsset(getAssets(), "Baloo-Regular.ttf"); 
     mauncher.setTypeface(typeface0); 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       Intent welcomeintent = new Intent(MainActivity.this, CitationActivity.class); 
       startActivity(welcomeintent); 
       finish(); 
      } 
     },SPLASH_TIME_OUT); 
    } 

} 


import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.TextView; 

public class CitationActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_citation); 
     Intent welcomeintent = getIntent(); 
    } 
    TextView textOne = (TextView) findViewById(R.id.textView2); 
    String [] Names = {"Johnny", "Dominic", "Pablo", "Peter", "Frank"}; 
    public void sayHello (View view) { 
     int rando = (int) (Math.random() * 5); 
     textOne.setText(Names[rando]); 
    } 
} 
+1

あなたのlogcat –

+0

を提供してください、あなたはアンドロイドのモニターからのエラーメッセージを入れてくださいことはできますか? – Jeffy

+0

私は[クラスの最上位に変数を置く](https://stackoverflow.com/a/18881067/1380752)と似ていると思っていますが、スタックトレースを投稿する必要があります。 – codeMagic

答えて

1

あなたはコンテンツビューを設定する前に、方法findViewById()を使用することはできません、あなたのコードは次のようなものでなければなりませんアクティビティ

0

私はインスタント実行を無効にし、私の場合は問題を解決しました。

詳細については、デバッグモードで起動するとAndroidアプリがクラッシュします。 Android Studio - >設定 - >ビルド、実行、デプロイメント - > InstantRunに行き、 "ホットスワップにインスタント実行を有効にする"のチェックをはずして、インスタント実行を無効にします。

Android app crashes when launched in debug mode

関連する問題