这是我在java中的代码:
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");
}
}
为什么它在执行两个system.out.print
之间的代码时停止响应?
答案 0 :(得分:1)
我假设你得到的错误是NPE。由于您的context
尚未初始化。首先初始化它。
答案 1 :(得分:1)
您尚未初始化上下文。要获得包管理器,您可以使用活动的上下文。获取活动的上下文以初始化包管理器:
PackageManager packageManager = this.getPackageManager();
或者只是
PackageManager packageManager = getPackageManager();
答案 2 :(得分:0)
在使用之前初始化您的上下文:
this.context = getApplicationContext();