Создание счетчика шагов с акселерометром. Код компилируется без ошибок, но когда я запускаю его на телефоне (S5), он терпит неудачу.Комбинированный код для Android, но не работает
КОД НА ГЛАВНУЮ АКТИВНОСТИ
public class MainActivity extends Activity implements SensorEventListener{
TextView display;
float g;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
display = (TextView) findViewById(R.id.testView); // Correction
SensorManager mgr = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor GSensor = mgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mgr.registerListener(this, GSensor, SensorManager.SENSOR_DELAY_NORMAL);
String mytext = Float.toString(g);
display.setText(mytext);
}
@Override
public void onSensorChanged(SensorEvent event){
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
g = (x * x + y * y + z *z)/(SensorManager.GRAVITY_EARTH *SensorManager.GRAVITY_EARTH);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy){
}
}
ОШИБКИ В LOG ..
05-20 09:35:44.773 11142-11142/com.liamoc.stepcounteraccel1 E/Zygote: MountEmulatedStorage()
05-20 09:35:44.773 11142-11142/com.liamoc.stepcounteraccel1 E/Zygote: v2
05-20 09:35:44.773 11142-11142/com.liamoc.stepcounteraccel1 I/libpersona: KNOX_SDCARD checking this for 10199
05-20 09:35:44.773 11142-11142/com.liamoc.stepcounteraccel1 I/libpersona: KNOX_SDCARD not a persona
05-20 09:35:44.793 11142-11142/com.liamoc.stepcounteraccel1 I/SELinux: Function: selinux_compare_spd_ram , priority [2] , priority version is VE=SEPF_SM-G900F_5.0-1_0032
05-20 09:35:44.793 11142-11142/com.liamoc.stepcounteraccel1 E/SELinux: [DEBUG] get_category: variable seinfo: default sensitivity: NULL, cateogry: NULL
05-20 09:35:44.793 11142-11142/com.liamoc.stepcounteraccel1 I/art: Late-enabling -Xcheck:jni
05-20 09:35:44.823 11142-11142/com.liamoc.stepcounteraccel1 D/TimaKeyStoreProvider: TimaSignature is unavailable
05-20 09:35:44.823 11142-11142/com.liamoc.stepcounteraccel1 D/ActivityThread: Added TimaKeyStore provider
05-20 09:35:44.863 11142-11142/com.liamoc.stepcounteraccel1 D/ResourcesManager: creating new AssetManager and set to /data/app/com.liamoc.stepcounteraccel1-2/base.apk
05-20 09:35:44.883 11142-11142/com.liamoc.stepcounteraccel1 W/art: Failed to find OatDexFile for DexFile /data/data/com.liamoc.stepcounteraccel1/files/instant-run/dex/slice-slice_6-classes.dex (canonical path /data/data/com.liamoc.stepcounteraccel1/files/instant-run/dex/slice-slice_6-classes.dex) with checksum 0x1ff97ab0 in OatFile /data/data/com.liamoc.stepcounteraccel1/cache/slice-slice_6-classes.dex
05-20 09:35:45.053 11142-11142/com.liamoc.stepcounteraccel1 D/AndroidRuntime: Shutting down VM
05-20 09:35:45.053 11142-11142/com.liamoc.stepcounteraccel1 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.liamoc.stepcounteraccel1, PID: 11142
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.liamoc.stepcounteraccel1/com.liamoc.stepcounteraccel1.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2515)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
at android.app.ActivityThread.access$900(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
at android.app.Activity.findViewById(Activity.java:2168)
at com.liamoc.stepcounteraccel1.MainActivity.<init>(MainActivity.java:29)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1650)
at android.app.Instrumentation.newActivity(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2505)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
at android.app.ActivityThread.access$900(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Любая помощь приветствуется, им нуб так жаль Ifthe проб очень просто .. Благодаря
Что бы вы загружаете TextView это wrong.You должен вызывать TextView после загрузки вашего View XML. Textview следует вызывать после 'setContentView' –
' findViewById() 'следует использовать после' setContentView() 'Также вы получите' NullPointerException'. .String mytext = Float.toString (g); 'as' g' is не инициализирован. – SachinGutte
Perfect..I получил его для запуска. Большое спасибо! Его не считая шагов ... попытайтесь понять это и вернуться, если я не могу его уладить, еще раз спасибо .. – iamliam