Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 通过gluon CharmDown服务从指南针和加速计传感器获取值_Android_Javafx_Accelerometer_Compass Geolocation_Gluon - Fatal编程技术网

Android 通过gluon CharmDown服务从指南针和加速计传感器获取值

Android 通过gluon CharmDown服务从指南针和加速计传感器获取值,android,javafx,accelerometer,compass-geolocation,gluon,Android,Javafx,Accelerometer,Compass Geolocation,Gluon,我有一款带有安卓5.1棒棒糖的手机ARCHOS DIAMOND S,它包括加速计和指南针传感器。我已经用一些免费软件检查过了 Label labelGluonHeading = new Label(); Services.get(CompassService.class).ifPresent(service -> { double heading = service.getHeading(); // heading (cap): from 0 to 359.99 Syste

我有一款带有安卓5.1棒棒糖的手机ARCHOS DIAMOND S,它包括加速计和指南针传感器。我已经用一些免费软件检查过了

Label labelGluonHeading = new Label();
Services.get(CompassService.class).ifPresent(service -> {
    double heading = service.getHeading(); // heading (cap): from 0 to 359.99
    System.out.println("**Heading:** " +heading);
    labelGluonHeading.setText("GLUON_Cap: " + Double.toString(heading));
});
此外,显示服务、定位服务工作正常。但不是指南针和加速计服务

我是否忘记了Java代码中的某些内容

谢谢你的帮助

加速计: “acceleration.getX()”不起作用。 在控制台中,写入“Test accelero 2a”,然后显示关机消息

Label labelVarAafficherAccelX = new Label();
Label labelVarAafficherAccelY = new Label();
System.out.println("Test accelero 1");
Services.get(AccelerometerService.class).ifPresent(service -> {
    Acceleration acceleration = service.getCurrentAcceleration();  
    System.out.println("Test accelero 2a");
    double getX = acceleration.getX();  // that does not work
    System.out.println("**Test accelero 2b**");
    String varAafficherAccelX = Double.toString(acceleration.getX());
    String varAafficherAccelY = Double.toString(acceleration.getY());
    labelVarAafficherAccelX.setText(varAafficherAccelX);
    labelVarAafficherAccelY.setText(varAafficherAccelY);
    System.out.printf("Acceleration field: %.2f, %.2f, %.2f ", acceleration.getX(), acceleration.getY(), acceleration.getZ());
});
指南针: 标题服务的返回值总是0.0(而我已经用免费软件成功地测试了这个手机传感器)

在build.gradle中,downconfig工作正常,因为当我添加服务时,它在构建应用程序之前加载一次 build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.3.2'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}

mainClassName = 'com.gluonapplication.GluonApplication'

dependencies {
    compile 'com.gluonhq:charm:4.3.0'
}

jfxmobile {
     downConfig {
        version '3.2.0'
        plugins 'accelerometer', 'compass', 'device', 'orientation', 'storage', 'vibration', 'display', 'magnetometer', 'lifecycle', 'statusbar', 'position'
    }

    android {
        applicationPackage = 'com.gluonapplication'
        manifest = 'src/android/AndroidManifest.xml'
        androidSdk = 'C:/Users/pascal/AppData/Local/Android/sdk'
        resDirectory = 'src/android/res'
        compileSdkVersion = '23'
        buildToolsVersion = '25.0.1'
    }
    ios {
         infoPList = file('src/ios/Default-Info.plist')
        forceLinkClasses = [
                'com.gluonhq.**.*',
                'javax.annotations.**.*',
                'javax.inject.**.*',
                'javax.json.**.*',
                'org.glassfish.json.**.*'
        ]
    }
}

关于加速计,轨迹为:

02-01 19:59:39.349 17994 18039 I System.out: Test accelero 2b

02-01 19:59:39.350 17994 18039 W System.err: Exception in Application start method

02-01 19:59:39.352   317 18045 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872736, size: 46080, flags: 0x00000000, timestamp: 1920000 us (1.92 secs))

02-01 19:59:39.352   317 18045 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072870816)

02-01 19:59:39.353   317 18045 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c313a0 (length 9600), timestamp 6720000 us (6.72 secs)

02-01 19:59:39.355 17994 18039 I System.out: QuantumRenderer: shutdown

02-01 19:59:39.356 17994 18034 W System.err: java.lang.reflect.InvocationTargetException

02-01 19:59:39.356 17994 18034 W System.err:    at java.lang.reflect.Method.invoke(Native Method)

02-01 19:59:39.356 17994 18034 W System.err:    at java.lang.reflect.Method.invoke(Method.java:372)

02-01 19:59:39.356 17994 18034 W System.err:    at javafxports.android.DalvikLauncher$1.run(DalvikLauncher.java:188)

02-01 19:59:39.356 17994 18034 W System.err:    at java.lang.Thread.run(Thread.java:818)

02-01 19:59:39.356 17994 18034 W System.err: Caused by: java.lang.RuntimeException: Exception in Application start method

02-01 19:59:39.356 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)

02-01 19:59:39.356 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$138(LauncherImpl.java:182)

02-01 19:59:39.356 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl.access$lambda$1(LauncherImpl.java)

02-01 19:59:39.356 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl$$Lambda$2.run(Unknown Source)

02-01 19:59:39.356 17994 18034 W System.err:    ... 1 more

02-01 19:59:39.356 17994 18034 W System.err: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'double com.gluonhq.charm.down.plugins.Acceleration.getX()' on a null object reference

02-01 19:59:39.356 17994 18037 D Surface : Surface::setBuffersDimensions(this=0xf49e5500,w=720,h=1152)

02-01 19:59:39.356   288   960 I BufferQueueProducer: [SurfaceView](this:0x7f72779000,id:231,api:1,p:17994,c:288) new GraphicBuffer needed

02-01 19:59:39.356   288   960 I [MALI][Gralloc]: Usage: 0xb00, format: 0x1 stride: 720 vertical_stride: 1152 size: 3317760

02-01 19:59:39.357   317 18045 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872832, size: 46080, flags: 0x00000000, timestamp: 2160000 us (2.16 secs))

02-01 19:59:39.357   288   960 D GraphicBuffer: alloc, handle(0x7f7277d7a0) (w:720 h:1152 s:720 f:0x1 u:0x000b00) err(0)

02-01 19:59:39.357   317 18045 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072870912)

02-01 19:59:39.357   317 18045 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c31400 (length 9600), timestamp 6960000 us (6.96 secs)

02-01 19:59:39.358 17994 18034 W System.err:    at com.gluonapplication.GluonApplication.lambda$start$0(GluonApplication.java:287)

02-01 19:59:39.358 17994 18034 W System.err:    at com.gluonapplication.GluonApplication$$Lambda$1.accept(Unknown Source)

02-01 19:59:39.358 17994 18034 W System.err:    at java.util.Optional.ifPresent(Optional.java:154)

02-01 19:59:39.358 17994 18034 W System.err:    at com.gluonapplication.GluonApplication.start(GluonApplication.java:282)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$145(LauncherImpl.java:863)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl.access$lambda$8(LauncherImpl.java)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl$$Lambda$9.run(Unknown Source)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$158(PlatformImpl.java:326)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.access$lambda$6(PlatformImpl.java)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl$$Lambda$7.run(Unknown Source)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.lambda$null$156(PlatformImpl.java:295)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.access$lambda$18(PlatformImpl.java)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl$$Lambda$19.run(Unknown Source)

02-01 19:59:39.358 17994 18034 W System.err:    at java.security.AccessController.doPrivileged(AccessController.java:52)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.lambda$runLater$157(PlatformImpl.java:294)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.access$lambda$5(PlatformImpl.java)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl$$Lambda$6.run(Unknown Source)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:92)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:51)

02-01 19:59:39.358 17994 18034 W System.err:    ... 1 more

02-01 19:59:39.358 17994 18037 D GraphicBuffer: register, handle(0xf00b17a0) (w:720 h:1152 s:720 f:0x1 u:0x000b00)

02-01 19:59:39.360   371   371 D QMCX983D: waitting for enable m or o sensor

02-01 19:59:39.360   371   371 D QMCX983D: QMC_IOCTL_GET_OPEN_STATUS failed

02-01 19:59:39.360   371   371 D QMCX983D: QMC_IOCTL_GET_DELAY failed

02-01 19:59:39.360   371   371 D QMCX983D: QMC_IOCTL_SET_YPR failed!

02-01 19:59:39.361   317 18045 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872928, size: 46080, flags: 0x00000000, timestamp: 2400000 us (2.40 secs))

02-01 19:59:39.361   317 18045 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072871008)

02-01 19:59:39.361   317 18045 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c31460 (length 9600), timestamp 7200000 us (7.20 secs)

02-01 19:59:39.365 17994 18037 D Surface : Surface::setBuffersDimensions(this=0xf49e5500,w=720,h=1152)

02-01 19:59:39.366   317 18045 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072873024, size: 46080, flags: 0x00000000, timestamp: 2640000 us (2.64 secs))

02-01 19:59:39.366   288   474 I BufferQueueProducer: [SurfaceView](this:0x7f72779000,id:231,api:1,p:17994,c:288) new GraphicBuffer needed
02-01 20:20:24.870 19093 19137 I System.out: **Deb test compass**

02-01 20:20:24.870   371   371 D QMCX983D: QMC_IOCTL_SET_YPR failed!

02-01 20:20:24.871   317   897 E AudioALSAPlaybackHandlerBase: openPcmDriver(), pcm_start(0xf2c7c7c0) fail due to cannot start channel: Broken pipe

02-01 20:20:24.871   317   897 D AudioALSAPlaybackHandlerBase: -openPcmDriver(), mPcm = 0xf2c7c7c0

02-01 20:20:24.871   317   897 D AudioALSAHardwareResourceManager: +startOutputDevice(), new_devices = 0x2, mStartOutputDevicesCount = 0 SampleRate = 44100

02-01 20:20:24.871   317   897 D AudioALSADriverUtility: GetPropertyValue key = af.resouce.extdac_support value = 0

02-01 20:20:24.871   317   897 D AudioALSADeviceConfigManager: GetDeviceDescriptorbyname

02-01 20:20:24.871   317   897 D AudioALSADeviceConfigManager: CheckDeviceExist exist devicename = headphone_output

02-01 20:20:24.871   317   897 D AudioALSADeviceConfigManager: ApplyDeviceTurnonSequenceByName() DeviceName = headphone_output descriptor->DeviceStatusCounte = 0

02-01 20:20:24.871   317   897 D AudioALSADeviceConfigManager: cltname = Audio_Amp_R_Switch cltvalue = On

02-01 20:20:24.872   317 19143 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872640, size: 46080, flags: 0x00000000, timestamp: 1680000 us (1.68 secs))

02-01 20:20:24.872   317 19143 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072870720)

02-01 20:20:24.873   317 19143 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c31340 (length 9600), timestamp 6480000 us (6.48 secs)

02-01 20:20:24.873   317   897 D AudioALSADeviceConfigManager: cltname = Audio_Amp_L_Switch cltvalue = On

02-01 20:20:24.873   317   897 D AudioALSADeviceConfigManager: GetDeviceDescriptorbyname

02-01 20:20:24.873   317   897 D AudioALSADeviceConfigManager: CheckDeviceExist exist devicename = ext_speaker_output

02-01 20:20:24.873   317   897 D AudioALSADeviceConfigManager: ApplyDeviceTurnonSequenceByName() DeviceName = ext_speaker_output descriptor->DeviceStatusCounte = 0

02-01 20:20:24.873   317   897 D AudioALSADeviceConfigManager: cltname = Ext_Speaker_Amp_Switch cltvalue = On

02-01 20:20:24.875   849  3163 D SensorService: Calling batch handle==1 flags=0rate=10000000 timeout== 0

02-01 20:20:24.875   849  3163 D SensorService: SensorDevice::batch: ident=0x7f61119cc0, handle=0x00000001, flags=0, period_ns=10000000 timeout=0

02-01 20:20:24.875   849  3163 D SensorService:     >>> curr_period=66667000 min_period=10000000 curr_timeout=0 min_timeout=0

02-01 20:20:24.875   849  3163 D SensorService: Calling activate on 1

02-01 20:20:24.875   849  3163 D SensorService: SensorDevice::activate: ident=0x7f61119cc0, handle=0x00000001, enabled=1, count=2

02-01 20:20:24.875   849  3163 D SensorService: enable index=0

02-01 20:20:24.875   849  3163 D SensorService:     >>> actuating h/w setDelay 1 10000000

02-01 20:20:24.875   849  3163 E Sensors : handleToDriver handle(0)

02-01 20:20:24.875   849  3163 D Accel   : setDelay: (handle=0, ns=10000000)

02-01 20:20:24.875   849  3163 D Accel   : no ACC setDelay control attr 


02-01 20:20:24.875   849  3163 E Sensors : new setDelay handle(0),ns(10000000)m, error(-1), index(2)

02-01 20:20:24.875   849  3163 E Sensors : new setDelay handle(0),ns(10000000) err! go to hwmsen

02-01 20:20:24.875   849  3163 D Hwmsen_sensors: setDelay: (handle=0, ns=10000000)

02-01 20:20:24.875   849  3163 D Hwmsen_sensors: setDelay: (what=0, ms=10)

02-01 20:20:24.875   849  3163 D Hwmsen_sensors: really setDelay: (what=0, ms=10)

02-01 20:20:24.875   849  1694 D SensorService: Calling batch handle==2 flags=0rate=100000000 timeout== 0

02-01 20:20:24.875   849  1694 D SensorService: SensorDevice::batch: ident=0x7f61119cc0, handle=0x00000002, flags=0, period_ns=100000000 timeout=0

02-01 20:20:24.875   849  1694 D SensorService:     >>> curr_period=-1 min_period=100000000 curr_timeout=-1 min_timeout=0

02-01 20:20:24.875   849  1694 D SensorService: Calling activate on 2

02-01 20:20:24.875   849  1694 D SensorService: SensorDevice::activate: ident=0x7f61119cc0, handle=0x00000002, enabled=1, count=1

02-01 20:20:24.875   849  1694 D SensorService: enable index=0

02-01 20:20:24.875   849  1694 D SensorService:     >>> actuating h/w activate handle=2 enabled=1

02-01 20:20:24.875   849  1694 D Sensors : activate handle =1, enable = 1

02-01 20:20:24.875   849  1694 E Sensors : handleToDriver handle(1)

02-01 20:20:24.875   849  1694 D Sensors : use new sensor index=3, mSensors[index](7089b000)

02-01 20:20:24.875   849  1694 D Magnetic: fwq enable: handle:1, en:1 


02-01 20:20:24.875   849  1694 D Magnetic: handle(1),path:magactive 


02-01 20:20:24.875   849  1694 D Magnetic: no magntic enable attr 


02-01 20:20:24.875   849  1694 D Sensors : use old sensor err(-1),index(3) go to old hwmsen

02-01 20:20:24.875   849  1694 D Hwmsen_sensors: Hwmsen_Enable: handle:1, en:1 


02-01 20:20:24.876   849  1694 D Hwmsen_sensors: virtual int Hwmsen::enable(int32_t, int): handle 1, enable or disable 1!

02-01 20:20:24.877   317 19143 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872736, size: 46080, flags: 0x00000000, timestamp: 1920000 us (1.92 secs))

02-01 20:20:24.877   317 19143 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072870816)

02-01 20:20:24.877   317 19143 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c313a0 (length 9600), timestamp 6720000 us (6.72 secs)

02-01 20:20:24.881   317 19143 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872832, size: 46080, flags: 0x00000000, timestamp: 2160000 us (2.16 secs))

02-01 20:20:24.881   317 19143 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072870912)

02-01 20:20:24.881   317 19143 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c31400 (length 9600), timestamp 6960000 us (6.96 secs)

02-01 20:20:24.882   849  1694 D Hwmsen_sensors: active_sensors =13


02-01 20:20:24.882   849  1694 D SensorService:     >>> actuating h/w setDelay 2 100000000

02-01 20:20:24.882   849  1694 E Sensors : handleToDriver handle(1)

02-01 20:20:24.882   849  1694 D Magnetic: no MAG setDelay control attr


02-01 20:20:24.882   849  1694 E Sensors : new setDelay handle(1),ns(100000000)m, error(-1), index(3)

02-01 20:20:24.882   849  1694 E Sensors : new setDelay handle(1),ns(100000000) err! go to hwmsen

02-01 20:20:24.882   849  1694 D Hwmsen_sensors: setDelay: (handle=1, ns=100000000)

02-01 20:20:24.882   849  1694 D Hwmsen_sensors: setDelay: (what=1, ms=100)

02-01 20:20:24.882   849  1694 D Hwmsen_sensors: really setDelay: (what=1, ms=100)

02-01 20:20:24.883 19093 19137 I System.out: **Heading: 0.0**

02-01 20:20:24.884 19093 19137 I System.out: Fin test compass

02-01 20:20:24.884 19093 19137 I System.out: Deb test orientation

02-01 20:20:24.885   317 19143 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872928, size: 46080, flags: 0x00000000, timestamp: 2400000 us (2.40 secs))

02-01 20:20:24.885   317 19143 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072871008)

02-01 20:20:24.885   317 19143 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c31460 (length 9600), timestamp 7200000 us (7.20 secs)

02-01 20:20:24.889 19093 19137 I System.out: Fin test orientation

02-01 20:20:24.889 19093 19137 I System.out: Hello World! Debug avec adb - fin d'initialisation

02-01 20:20:24.889   317 19143 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072873024, size: 46080, flags: 0x00000000, timestamp: 2640000 us (2.64 secs))

02-01 20:20:24.889   317 19143 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072871104)

02-01 20:20:24.889   317 19143 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c314c0 (length 9600), timestamp 7440000 us (7.44 secs)
注:轨迹与或与“新加速度”相同 加速度加速度=新的加速度(0,0,0,LocalDateTime.now()); 加速度=服务。getCurrentAcceleration()


关于航向传感器,轨迹为:

02-01 19:59:39.349 17994 18039 I System.out: Test accelero 2b

02-01 19:59:39.350 17994 18039 W System.err: Exception in Application start method

02-01 19:59:39.352   317 18045 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872736, size: 46080, flags: 0x00000000, timestamp: 1920000 us (1.92 secs))

02-01 19:59:39.352   317 18045 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072870816)

02-01 19:59:39.353   317 18045 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c313a0 (length 9600), timestamp 6720000 us (6.72 secs)

02-01 19:59:39.355 17994 18039 I System.out: QuantumRenderer: shutdown

02-01 19:59:39.356 17994 18034 W System.err: java.lang.reflect.InvocationTargetException

02-01 19:59:39.356 17994 18034 W System.err:    at java.lang.reflect.Method.invoke(Native Method)

02-01 19:59:39.356 17994 18034 W System.err:    at java.lang.reflect.Method.invoke(Method.java:372)

02-01 19:59:39.356 17994 18034 W System.err:    at javafxports.android.DalvikLauncher$1.run(DalvikLauncher.java:188)

02-01 19:59:39.356 17994 18034 W System.err:    at java.lang.Thread.run(Thread.java:818)

02-01 19:59:39.356 17994 18034 W System.err: Caused by: java.lang.RuntimeException: Exception in Application start method

02-01 19:59:39.356 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)

02-01 19:59:39.356 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$138(LauncherImpl.java:182)

02-01 19:59:39.356 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl.access$lambda$1(LauncherImpl.java)

02-01 19:59:39.356 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl$$Lambda$2.run(Unknown Source)

02-01 19:59:39.356 17994 18034 W System.err:    ... 1 more

02-01 19:59:39.356 17994 18034 W System.err: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'double com.gluonhq.charm.down.plugins.Acceleration.getX()' on a null object reference

02-01 19:59:39.356 17994 18037 D Surface : Surface::setBuffersDimensions(this=0xf49e5500,w=720,h=1152)

02-01 19:59:39.356   288   960 I BufferQueueProducer: [SurfaceView](this:0x7f72779000,id:231,api:1,p:17994,c:288) new GraphicBuffer needed

02-01 19:59:39.356   288   960 I [MALI][Gralloc]: Usage: 0xb00, format: 0x1 stride: 720 vertical_stride: 1152 size: 3317760

02-01 19:59:39.357   317 18045 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872832, size: 46080, flags: 0x00000000, timestamp: 2160000 us (2.16 secs))

02-01 19:59:39.357   288   960 D GraphicBuffer: alloc, handle(0x7f7277d7a0) (w:720 h:1152 s:720 f:0x1 u:0x000b00) err(0)

02-01 19:59:39.357   317 18045 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072870912)

02-01 19:59:39.357   317 18045 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c31400 (length 9600), timestamp 6960000 us (6.96 secs)

02-01 19:59:39.358 17994 18034 W System.err:    at com.gluonapplication.GluonApplication.lambda$start$0(GluonApplication.java:287)

02-01 19:59:39.358 17994 18034 W System.err:    at com.gluonapplication.GluonApplication$$Lambda$1.accept(Unknown Source)

02-01 19:59:39.358 17994 18034 W System.err:    at java.util.Optional.ifPresent(Optional.java:154)

02-01 19:59:39.358 17994 18034 W System.err:    at com.gluonapplication.GluonApplication.start(GluonApplication.java:282)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$145(LauncherImpl.java:863)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl.access$lambda$8(LauncherImpl.java)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.LauncherImpl$$Lambda$9.run(Unknown Source)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$158(PlatformImpl.java:326)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.access$lambda$6(PlatformImpl.java)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl$$Lambda$7.run(Unknown Source)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.lambda$null$156(PlatformImpl.java:295)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.access$lambda$18(PlatformImpl.java)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl$$Lambda$19.run(Unknown Source)

02-01 19:59:39.358 17994 18034 W System.err:    at java.security.AccessController.doPrivileged(AccessController.java:52)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.lambda$runLater$157(PlatformImpl.java:294)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl.access$lambda$5(PlatformImpl.java)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.javafx.application.PlatformImpl$$Lambda$6.run(Unknown Source)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:92)

02-01 19:59:39.358 17994 18034 W System.err:    at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:51)

02-01 19:59:39.358 17994 18034 W System.err:    ... 1 more

02-01 19:59:39.358 17994 18037 D GraphicBuffer: register, handle(0xf00b17a0) (w:720 h:1152 s:720 f:0x1 u:0x000b00)

02-01 19:59:39.360   371   371 D QMCX983D: waitting for enable m or o sensor

02-01 19:59:39.360   371   371 D QMCX983D: QMC_IOCTL_GET_OPEN_STATUS failed

02-01 19:59:39.360   371   371 D QMCX983D: QMC_IOCTL_GET_DELAY failed

02-01 19:59:39.360   371   371 D QMCX983D: QMC_IOCTL_SET_YPR failed!

02-01 19:59:39.361   317 18045 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872928, size: 46080, flags: 0x00000000, timestamp: 2400000 us (2.40 secs))

02-01 19:59:39.361   317 18045 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072871008)

02-01 19:59:39.361   317 18045 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c31460 (length 9600), timestamp 7200000 us (7.20 secs)

02-01 19:59:39.365 17994 18037 D Surface : Surface::setBuffersDimensions(this=0xf49e5500,w=720,h=1152)

02-01 19:59:39.366   317 18045 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072873024, size: 46080, flags: 0x00000000, timestamp: 2640000 us (2.64 secs))

02-01 19:59:39.366   288   474 I BufferQueueProducer: [SurfaceView](this:0x7f72779000,id:231,api:1,p:17994,c:288) new GraphicBuffer needed
02-01 20:20:24.870 19093 19137 I System.out: **Deb test compass**

02-01 20:20:24.870   371   371 D QMCX983D: QMC_IOCTL_SET_YPR failed!

02-01 20:20:24.871   317   897 E AudioALSAPlaybackHandlerBase: openPcmDriver(), pcm_start(0xf2c7c7c0) fail due to cannot start channel: Broken pipe

02-01 20:20:24.871   317   897 D AudioALSAPlaybackHandlerBase: -openPcmDriver(), mPcm = 0xf2c7c7c0

02-01 20:20:24.871   317   897 D AudioALSAHardwareResourceManager: +startOutputDevice(), new_devices = 0x2, mStartOutputDevicesCount = 0 SampleRate = 44100

02-01 20:20:24.871   317   897 D AudioALSADriverUtility: GetPropertyValue key = af.resouce.extdac_support value = 0

02-01 20:20:24.871   317   897 D AudioALSADeviceConfigManager: GetDeviceDescriptorbyname

02-01 20:20:24.871   317   897 D AudioALSADeviceConfigManager: CheckDeviceExist exist devicename = headphone_output

02-01 20:20:24.871   317   897 D AudioALSADeviceConfigManager: ApplyDeviceTurnonSequenceByName() DeviceName = headphone_output descriptor->DeviceStatusCounte = 0

02-01 20:20:24.871   317   897 D AudioALSADeviceConfigManager: cltname = Audio_Amp_R_Switch cltvalue = On

02-01 20:20:24.872   317 19143 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872640, size: 46080, flags: 0x00000000, timestamp: 1680000 us (1.68 secs))

02-01 20:20:24.872   317 19143 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072870720)

02-01 20:20:24.873   317 19143 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c31340 (length 9600), timestamp 6480000 us (6.48 secs)

02-01 20:20:24.873   317   897 D AudioALSADeviceConfigManager: cltname = Audio_Amp_L_Switch cltvalue = On

02-01 20:20:24.873   317   897 D AudioALSADeviceConfigManager: GetDeviceDescriptorbyname

02-01 20:20:24.873   317   897 D AudioALSADeviceConfigManager: CheckDeviceExist exist devicename = ext_speaker_output

02-01 20:20:24.873   317   897 D AudioALSADeviceConfigManager: ApplyDeviceTurnonSequenceByName() DeviceName = ext_speaker_output descriptor->DeviceStatusCounte = 0

02-01 20:20:24.873   317   897 D AudioALSADeviceConfigManager: cltname = Ext_Speaker_Amp_Switch cltvalue = On

02-01 20:20:24.875   849  3163 D SensorService: Calling batch handle==1 flags=0rate=10000000 timeout== 0

02-01 20:20:24.875   849  3163 D SensorService: SensorDevice::batch: ident=0x7f61119cc0, handle=0x00000001, flags=0, period_ns=10000000 timeout=0

02-01 20:20:24.875   849  3163 D SensorService:     >>> curr_period=66667000 min_period=10000000 curr_timeout=0 min_timeout=0

02-01 20:20:24.875   849  3163 D SensorService: Calling activate on 1

02-01 20:20:24.875   849  3163 D SensorService: SensorDevice::activate: ident=0x7f61119cc0, handle=0x00000001, enabled=1, count=2

02-01 20:20:24.875   849  3163 D SensorService: enable index=0

02-01 20:20:24.875   849  3163 D SensorService:     >>> actuating h/w setDelay 1 10000000

02-01 20:20:24.875   849  3163 E Sensors : handleToDriver handle(0)

02-01 20:20:24.875   849  3163 D Accel   : setDelay: (handle=0, ns=10000000)

02-01 20:20:24.875   849  3163 D Accel   : no ACC setDelay control attr 


02-01 20:20:24.875   849  3163 E Sensors : new setDelay handle(0),ns(10000000)m, error(-1), index(2)

02-01 20:20:24.875   849  3163 E Sensors : new setDelay handle(0),ns(10000000) err! go to hwmsen

02-01 20:20:24.875   849  3163 D Hwmsen_sensors: setDelay: (handle=0, ns=10000000)

02-01 20:20:24.875   849  3163 D Hwmsen_sensors: setDelay: (what=0, ms=10)

02-01 20:20:24.875   849  3163 D Hwmsen_sensors: really setDelay: (what=0, ms=10)

02-01 20:20:24.875   849  1694 D SensorService: Calling batch handle==2 flags=0rate=100000000 timeout== 0

02-01 20:20:24.875   849  1694 D SensorService: SensorDevice::batch: ident=0x7f61119cc0, handle=0x00000002, flags=0, period_ns=100000000 timeout=0

02-01 20:20:24.875   849  1694 D SensorService:     >>> curr_period=-1 min_period=100000000 curr_timeout=-1 min_timeout=0

02-01 20:20:24.875   849  1694 D SensorService: Calling activate on 2

02-01 20:20:24.875   849  1694 D SensorService: SensorDevice::activate: ident=0x7f61119cc0, handle=0x00000002, enabled=1, count=1

02-01 20:20:24.875   849  1694 D SensorService: enable index=0

02-01 20:20:24.875   849  1694 D SensorService:     >>> actuating h/w activate handle=2 enabled=1

02-01 20:20:24.875   849  1694 D Sensors : activate handle =1, enable = 1

02-01 20:20:24.875   849  1694 E Sensors : handleToDriver handle(1)

02-01 20:20:24.875   849  1694 D Sensors : use new sensor index=3, mSensors[index](7089b000)

02-01 20:20:24.875   849  1694 D Magnetic: fwq enable: handle:1, en:1 


02-01 20:20:24.875   849  1694 D Magnetic: handle(1),path:magactive 


02-01 20:20:24.875   849  1694 D Magnetic: no magntic enable attr 


02-01 20:20:24.875   849  1694 D Sensors : use old sensor err(-1),index(3) go to old hwmsen

02-01 20:20:24.875   849  1694 D Hwmsen_sensors: Hwmsen_Enable: handle:1, en:1 


02-01 20:20:24.876   849  1694 D Hwmsen_sensors: virtual int Hwmsen::enable(int32_t, int): handle 1, enable or disable 1!

02-01 20:20:24.877   317 19143 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872736, size: 46080, flags: 0x00000000, timestamp: 1920000 us (1.92 secs))

02-01 20:20:24.877   317 19143 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072870816)

02-01 20:20:24.877   317 19143 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c313a0 (length 9600), timestamp 6720000 us (6.72 secs)

02-01 20:20:24.881   317 19143 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872832, size: 46080, flags: 0x00000000, timestamp: 2160000 us (2.16 secs))

02-01 20:20:24.881   317 19143 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072870912)

02-01 20:20:24.881   317 19143 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c31400 (length 9600), timestamp 6960000 us (6.96 secs)

02-01 20:20:24.882   849  1694 D Hwmsen_sensors: active_sensors =13


02-01 20:20:24.882   849  1694 D SensorService:     >>> actuating h/w setDelay 2 100000000

02-01 20:20:24.882   849  1694 E Sensors : handleToDriver handle(1)

02-01 20:20:24.882   849  1694 D Magnetic: no MAG setDelay control attr


02-01 20:20:24.882   849  1694 E Sensors : new setDelay handle(1),ns(100000000)m, error(-1), index(3)

02-01 20:20:24.882   849  1694 E Sensors : new setDelay handle(1),ns(100000000) err! go to hwmsen

02-01 20:20:24.882   849  1694 D Hwmsen_sensors: setDelay: (handle=1, ns=100000000)

02-01 20:20:24.882   849  1694 D Hwmsen_sensors: setDelay: (what=1, ms=100)

02-01 20:20:24.882   849  1694 D Hwmsen_sensors: really setDelay: (what=1, ms=100)

02-01 20:20:24.883 19093 19137 I System.out: **Heading: 0.0**

02-01 20:20:24.884 19093 19137 I System.out: Fin test compass

02-01 20:20:24.884 19093 19137 I System.out: Deb test orientation

02-01 20:20:24.885   317 19143 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072872928, size: 46080, flags: 0x00000000, timestamp: 2400000 us (2.40 secs))

02-01 20:20:24.885   317 19143 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072871008)

02-01 20:20:24.885   317 19143 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c31460 (length 9600), timestamp 7200000 us (7.20 secs)

02-01 20:20:24.889 19093 19137 I System.out: Fin test orientation

02-01 20:20:24.889 19093 19137 I System.out: Hello World! Debug avec adb - fin d'initialisation

02-01 20:20:24.889   317 19143 W OMXCodec: FILL_BUFFER_DONE(buffer: 4072873024, size: 46080, flags: 0x00000000, timestamp: 2640000 us (2.64 secs))

02-01 20:20:24.889   317 19143 W OMXCodec: EMPTY_BUFFER_DONE(buffer: 4072871104)

02-01 20:20:24.889   317 19143 D OMXCodec: [OMX.MTK.AUDIO.DECODER.MP3] Calling emptyBuffer on buffer 0xf2c314c0 (length 9600), timestamp 7440000 us (7.44 secs)

考虑到加速度和航向随时间快速变化,您应该监听属性
AccelerometerService::accelerationProperty
CompassService::headingProperty
中的更改,而不是在给定的瞬间获取单个值(因为它可能是0或null)因为传感器可能还没有准备好

以下是您如何收听标题变化:

Services.get(CompassService.class)
    .ifPresent(s -> s.headingProperty()
          .addListener((obs, ov, nv) -> 
               labelGluonHeading.setText(String.format("Heading: %.2f\u00b0", 
                     nv.doubleValue())))); 
和加速计传感器:

Services.get(AccelerometerService.class)
    .ifPresent(s -> s.accelerationProperty()
        .addListener((obs, ov, nv) -> 
            labelGluonAcceleration.setText(String.format("%.1f %.1f %.1f", 
                    nv.getX(), nv.getY(), nv.getZ())))); 

如果您的应用程序发生崩溃,您需要找出它发生的原因。打开一个终端,转到Android SDK文件夹,平台工具,然后运行
adb logcat-v threadtime
。然后运行应用程序,直到崩溃。检查控制台是否存在可能的异常。然后尝试解决它或将其发布到这里。我已经运行了调试选项(使用threadtime)。然后在每种情况下运行测试应用程序(加速计、指南针)。见上文。我希望这些痕迹能帮助你理解原因。