试图让相机显示名称崩溃活动页面

时间:2018-04-05 18:14:50

标签: dji-sdk

由于FPVwidget和FPVOverLayWidget没有为Zenmuse XT正确进行设置和OSD,我尝试将设置活动设置为可以更改某些基本设置的位置。如果没有连接Zenmuse XT,我不想启用这些设置。所以我一直在编写一些测试代码来检查功能,并且设置活动一直与logcat中的错误一起崩溃说:

  

java.lang.NullPointerException:尝试调用虚方法   ' java.lang.String dji.sdk.camera.Camera.getDisplayName()'在null   对象参考

这是我的代码:



thermalColorPalletSwitch=(Switch)findViewById(R.id.thermalColorPalletSwitch);

        if(FPVApplication.getProductInstance().getCamera().getDisplayName().equals(Camera.DisplayNameXT)){

            thermalColorPalletSwitch.setEnabled(false);

        }else{

            thermalColorPalletSwitch.setEnabled(false);

        }




我也试过这个代码的结果相同:



        thermalColorPalletSwitch=(Switch)findViewById(R.id.thermalColorPalletSwitch);

        if(FPVApplication.getProductInstance().getCamera() != null){
            if(FPVApplication.getProductInstance().getCamera().getDisplayName().equals(Camera.DisplayNameXT)){
                
                thermalColorPalletSwitch.setEnabled(true);
                
            }else{

                thermalColorPalletSwitch.setEnabled(false);
            }
        }




我不确定我做错了什么。

我还尝试了以下代码,当我在Inspire 1上交换Zenmuse X3和Zenmuse XT时,它按预期工作。但是,如果应用程序没有连接到遥控器,则设置活动仍然会崩溃。



thermalColorPalletSwitch=(Switch)findViewById(R.id.thermalColorPalletSwitch);

        if(FPVApplication.getProductInstance().getCamera() != null){

            if(FPVApplication.getProductInstance().getCamera().isThermalCamera()){

                thermalColorPalletSwitch.setEnabled(true);
                
            }else{
                
                thermalColorPalletSwitch.setEnabled(false);
            }
        }




1 个答案:

答案 0 :(得分:0)

我明白了。因此,在你开始检查是否有关于相机的任何信息之前,你必须检查是否有与DJI产品的连接。

此代码不会崩溃。



 thermalColorPalletSwitch=(Switch)findViewById(R.id.thermalColorPalletSwitch);

        if(null != FPVApplication.getProductInstance() && FPVApplication.getProductInstance().isConnected()){

            if(FPVApplication.getProductInstance().getCamera().isThermalCamera()){

                thermalColorPalletSwitch.setEnabled(true);

            }else{

                thermalColorPalletSwitch.setEnabled(false);
            }
        }