Android에서 내 자이로 스코프 용 서비스를 생성하려고하는데 getSystemService에 계속 문제가 있습니다.
솔루션을 찾으려고 노력하면서 포럼을 검색해 왔지만 대부분의 경우 MainActivity에서 컨텍스트를 가져 오기만하면됩니다.
public class GyroData implements SensorEventListener {
private final Context mContext;
protected SensorManager mSensorManager;
public GyroData(Context context) {
mContext = context;
mSensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE);
}
위에서 볼 수 있듯이 이미 수행했지만 여전히 다음 오류가 발생합니다.
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{sw806f16.p8project/sw806f16.p8project.CameraActivity}: java.lang.IllegalStateException: System services not available to Activities before onCreate()
at sw806f16.p8project.GyroData.setupSensorManager(GyroData.java:24)
편집 : MainActivity에서 추가 된 코드
public class CameraActivity extends Activity implements LocationListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
public static final String TAG = "CameraActivity";
LocationService gps = new LocationService(this);
GyroData gyro = new GyroData(this);
의 메서드 GyroData
에서 인스턴스화 하고 있습니다 . 즉, 모든 방법 외부에 있습니다. 이 정의 된 방법을 포함하여, 호출되기 전에 발생 하고, 당신에있는대로, 시스템 서비스를 요청하기 전에 발생해야 거기에 호출 의 생성자입니다.CameraActivity
<init>
onCreate()
super.onCreate()
GyroData
을 호출 한 후 gyro
초기화를 로 이동하기 만하면 onCreate()
됩니다 super.onCreate()
. gps
초기화도 똑같이해야합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다