2016-11-09 6 views
0

TelephonyManagerMainActivity이 아닌 OnCreate으로 선언하고 싶습니다. OnCreate에는 아무런 문제가 없지만, MainActivity에서 사용할 때 널 포인터 예외가 발생합니다. TelephonyManager을 신고하려면 내 코드의 구조가 MainActivity이어야합니다.TelephonyManager가 MainActivity에서 Null 포인터 예외를 throw합니다.

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 
} 
} 

이 문제를 해결하는 방법은 무엇입니까?

+0

이 'onCreate' 섹션 추가 –

+0

클래스 레벨 –

+0

에서 사용하는 경우 getApplicationContext()는 null을 반환하므로 onCrate를 추가하면 안됩니다. MainActivity에 imei 번호를 부여해야하기 때문에 –

답변

0

복사합니다 onCreate 방법으로이 라인 :

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

당신은 당신이 당신의 클래스에서 직접 Context의 메소드를 호출 할 수 있도록 (ActivityContext를 확장) Activity를 확장하는 클래스에 있습니다.