首页 / 浏览问题 / 移动GIS / 问题详情
三维场景打开报错
145EXP 2022年12月28日

点击添加 打开三维

打开以后就成这样了  然后再点击打开离线场景 就直接崩溃了

 case R.id.btnOpen:
                m_workspace = new Workspace();
                WorkspaceConnectionInfo info = new WorkspaceConnectionInfo();
                info.setServer(sdcard + "/SampleData/GeometryInfo/World.smwu");
                info.setType(WorkspaceType.SMWU);
                m_workspace.open(info);

                m_sceneControl = findViewById(R.id.sceneControl1);
                m_scene = m_sceneControl.getScene();
                m_scene.setWorkspace(m_workspace);

                String sceneName = m_workspace.getScenes().get(1);
                m_scene.open(sceneName);
                m_scene.refresh();
                break;

这个是打开离线场景的按钮里边打开三维的工作空间

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.supermap.map, PID: 9963
    java.lang.IllegalStateException: getScene()
    
        at com.supermap.realspace.SceneControl.getScene(SceneControl.java:379)
        at com.supermap.map.activity.ThreeDimensional.onClick(ThreeDimensional.java:87)
        at android.view.View.performClick(View.java:7664)
        at android.view.View.performClickInternal(View.java:7638)
        at android.view.View.access$3800(View.java:878)
        at android.view.View$PerformClick.run(View.java:29899)
        at android.os.Handler.handleCallback(Handler.java:966)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loopOnce(Looper.java:205)
        at android.os.Looper.loop(Looper.java:293)
        at android.app.ActivityThread.main(ActivityThread.java:9551)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1204)
 

这是错误

1个回答

根据错误信息提示:IllegalStateException

请确保m_scene被释放再进行操作
3,745EXP 2022年12月28日
现在不报错了但是打开的时候直接闪退到主界面了
会不会是因为用的同一个工作空间中的三维点云数据
您说的释放我加了以后一点直接闪退了
scenecontrol控件未完成初始化加载场景导致的错误,可以用scenecontrol.sceneControlInitedComplete(SceneControlInitedCallBackListenner listenner)场景控件初始化回调监听,SceneControlInitedCallBackListenner.onSuccess(java.lang.String success)初始化监听成功后再加载场景
...