Java TelephonyManager在MainActivity中引发空指针异常

Java TelephonyManager在MainActivity中引发空指针异常,java,android,nullpointerexception,telephonymanager,imei,Java,Android,Nullpointerexception,Telephonymanager,Imei,我想在main活动中声明TelephonyManager,而不是OnCreate。在OnCreate中没有问题,但是当我在MainActivity中使用时,它会给出一个空指针异常。 在main活动中声明TelephonyManager需要我的代码结构 public class MainActivity extends Activity { TelephonyManager mngr = (TelephonyManager) getApplicationContext().getSys

我想在
main活动中声明
TelephonyManager
,而不是
OnCreate
。在
OnCreate
中没有问题,但是当我在
MainActivity
中使用时,它会给出一个空指针异常。 在
main活动
中声明
TelephonyManager
需要我的代码结构

public class MainActivity extends Activity {


    TelephonyManager mngr = (TelephonyManager) getApplicationContext().getSystemService(getApplicationContext().TELEPHONY_SERVICE);//Error line here.
    String imei = mngr.getDeviceId();

 protected void onCreate(Bundle savedInstanceState) {
//My jobs
}
}

如何解决此问题?

将此行复制到您的
onCreate
方法中:

TelephonyManager manager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

您所在的类扩展了
Activity
Activity
扩展了
Context
),因此您可以直接从类中调用
Context
的方法。

添加此
onCreate
部分,因为
getApplicationContext()
如果在类级别使用,则返回null。因为我应该在MainActivity中提供imei编号,所以您必须将mngr放在onCreate方法中