2016-05-26 5 views
-1

これは、Javaでの私のコードです:それは2 system.out.print間でコードを実行したときにAndroidのコンテキストgetPackageManager hasSystemFeature

public class TestAudio extends Activity { 
    private TextView t1; 
    private Context context; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_test_audio); 
     t1 = (TextView)findViewById(R.id.t1); 
     System.out.println("aaaaaaaaaaaaaa"); 
     PackageManager packageManager = context.getPackageManager(); 

     System.out.println("bbbbbbbbbbbbbb"); 
     if(packageManager.hasSystemFeature(PackageManager.FEATURE_MICROPHONE)){ 
      t1.setText("I'm here"); 
     }else{ 
      t1.setText("gg"); 
     } 

    } 

なぜそれが応答を停止していますか?

答えて

1

あなたが取得したエラーがNPEであると推測しています。 contextはまだ初期化されていません。最初に初期化してください。

+0

ありがとうございました!今私は問題が何であるか知っている、私はコンテキストオブジェクトをインスタンス化することはできません。 – MarvinC

+0

あなたの投稿を@MarvinC Cheersの助けになった答えを受け入れることによって正しくタグ付けしますか? –

1

コンテキストを初期化していません。パッケージマネージャーを取得するには、アクティビティーのコンテキストを使用します。パッケージマネージャを初期化するために、アクティビティのコンテキストを取得します:あなたのコンテキストの初期化

PackageManager packageManager = this.getPackageManager(); 

それとも単に

PackageManager packageManager = getPackageManager(); 
+0

ありがとうございます!今私は問題が何であるか知っている、私はコンテキストオブジェクトをインスタンス化することはできません – MarvinC

0

前にそれを使用します。

this.context = getApplicationContext(); 
+0

ありがとう!今私は問題が何であるか知っている、私はコンテキストオブジェクトをインスタンス化することはできません – MarvinC

関連する問題