问题描述
你好,我想实时获取VeLocity X的值,并计算加速度X: 我在MainActivity.java中使用了以下代码:
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getName();
@SuppressLint("SetTextI18n")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((Aircraft) DemoApplication.getProductInstance()).getFlightController().setStateCallback(new FlightControllerState.Callback() {
@Override
public void onUpdate(@NonNull FlightControllerState flightControllerState) {
float vx1 = flightControllerState.getVeLocityX();
Handler handler = new Handler();
handler.postDelayed(() -> {
//Do something after 100ms
},100);
float vx2 = flightControllerState.getVeLocityX();
float accelerationVariableX = (10 * vx2) - (10 * vx1);
TextView acc = (TextView) findViewById(R.id.acc);
//String v1 = Float.toString(vx1);
//String v2 = Float.toString(vx2);
acc.setText("accX: " + accelerationVariableX + " m/s²" + "/x1 " + vx1 + "/x2 " + vx2); // acceleration and veLocity
}
});
}
}
我打开应用程序时崩溃了, 如何修复崩溃的应用程序?
注意:当我删除此行时
((Aircraft) DemoApplication.getProductInstance()).getFlightController().setStateCallback(new FlightControllerState.Callback() {
@Override
public void onUpdate(@NonNull FlightControllerState flightControllerState) {
` 该应用程序运行良好
解决方法
我怀疑getProductInstance()或getFlightController()这些变量之一为空。
您确定飞机已连接并且SDK已完成注册和初始化的竞争吗?在先验完成之前,这些参数将为空。