2012-11-14 2 views
1

데이터베이스에 저장하는 웹 서비스에서 이러한 값을 사용하려면 Android 휴대 전화에서 센서 값을 가져 오는 android 응용 프로그램에서 작업하고 있습니다. . 센서 값을 테스트 할 실제 장치가 없기 때문에 센서 시뮬레이터 [http://code.google.com/p/openintents/wiki/SensorSimulator][1] 을 사용할 때마다 내가 여기에 에러가 발생하고, 활동을 실행하는 활동 (필자는 API 15 구글 API를 플랫폼을 사용하고 있습니다 : 4.0.3)의 코드는 여기에android 및 SensorSimulator를 사용하여 센서 값을 가져와 데이터베이스에 저장하는 방법

import org.openintents.sensorsimulator.hardware.Sensor; 
import org.openintents.sensorsimulator.hardware.SensorEvent; 
import org.openintents.sensorsimulator.hardware.SensorEventListener; 
import org.openintents.sensorsimulator.hardware.SensorManagerSimulator; 


public class SimulationActivity extends Activity implements SensorEventListener { 

private SensorManagerSimulator mSensorManager; 
private Sensor mTemperature; 
private TextView mTemperatureLabel; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    mTemperatureLabel = (TextView) findViewById(R.id.temperature); 

    mSensorManager = SensorManagerSimulator.getSystemService(this,SENSOR_SERVICE); 
    mSensorManager.connectSimulator(); 

} 

@Override 
protected void onResume() { 
    super.onResume(); 
    mSensorManager.registerListener(this, 
      mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
      SensorManager.SENSOR_DELAY_FASTEST); 
    mSensorManager.registerListener(this, 
      mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), 
      SensorManager.SENSOR_DELAY_FASTEST); 
    mSensorManager.registerListener(this, 
      mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), 
      SensorManager.SENSOR_DELAY_FASTEST); 
    mSensorManager.registerListener(this, 
      mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE), 
      SensorManager.SENSOR_DELAY_FASTEST); 
} 

@Override 
protected void onStop() { 
    mSensorManager.unregisterListener(this); 
    super.onStop(); 
} 

public void onAccuracyChanged(Sensor sensor, int accuracy) { 
} 


public void onSensorChanged(SensorEvent event) { 

    switch (event.type) { 
    case Sensor.TYPE_ORIENTATION: { 
     Log.i("Sensor changed ", " Orientation "); 
     mTemperatureLabel.setText("orientation"); 

    } 
     break; 
    case Sensor.TYPE_LIGHT: { 
     Log.i("Sensor changed ", " light "); 
     mTemperatureLabel.setText("light"); 
    } 
     break; 
    case Sensor.TYPE_TEMPERATURE: { 
     Log.i("Sensor changed ", " temperature "); 
     mTemperatureLabel.setText("temperature"); 

    } 
     break; 
    case Sensor.TYPE_PRESSURE: { 
     Log.i("Sensor changed ", " pressure "); 
     mTemperatureLabel.setText("pressure "); 

    } 
     break; 
    } 
} 
} 

및 오류 메시지입니다

11-14 18:49:57.123: E/AndroidRuntime(4351): FATAL EXCEPTION: main 
11-14 18:49:57.123: E/AndroidRuntime(4351): java.lang.RuntimeException: Unable to instantiate  activity ComponentInfo{com.tunisietelecom.android/com.tunisietelecom.android.SimulationActivity}: java.lang.ClassNotFoundException: com.tunisietelecom.android.SimulationActivity 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at android.app.ActivityThread.access$600(ActivityThread.java:123) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at android.os.Looper.loop(Looper.java:137) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at java.lang.reflect.Method.invoke(Method.java:511) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at dalvik.system.NativeStart.main(Native Method) 
11-14 18:49:57.123: E/AndroidRuntime(4351): Caused by: java.lang.ClassNotFoundException: com.tunisietelecom.android.SimulationActivity 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at android.app.Instrumentation.newActivity(Instrumentation.java:1023) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871) 
11-14 18:49:57.123: E/AndroidRuntime(4351):  ... 11 more 

답변

0

발생 원인 : java.lang.ClassNotFoundException : com.tunisietelecom.android.SimulationActivity

매니 페스트 파일에 활동을 선언하셨습니까?

+0

@ 리디컬리 : 예, 주 활동으로 선언되었습니다. – MarwaInsat

1

이 문제가 해결되었습니다. 클래스 패스에 라이브러리를 추가하면 라이브러리가 휴대 전화로 내보내지지 않습니다. Proyect Properties -> Java Build Path -> Order and Export로 이동하여 휴대 전화로 내보낼 라이브러리를 "확인"해야합니다. 그렇게하지 않으면 라이브러리가 휴대 전화에 없을 것이며 Android에서 찾지 못할 것입니다.

관련 문제