首页 / 浏览问题 / 移动GIS / 问题详情
AS利用supermap插件导入三维模型场景,为什么虚拟机运行出来一片空白?
8EXP 2021年08月25日

虚拟机运行出来以后,只有项目名称和空白页面,其他什么都没有出来

代码如下:

private SceneControl m_sceneControl;
private Button m_btnOpen;
String url = "192.168.3.198:8090/iserver/services/3D-bridge-bridge-2/rest/realspace";
String sceneName = "bridge-bridge-2";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        requestPermissions() ;
        //String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
        Environment.setLicensePath("F:\\SuperMap\\license");
        Environment.initialization(this);
        setContentView(R.layout.activity_main);
        SceneControl m_sceneControl = (SceneControl) findViewById(R.id.SceneControl);
        Button m_btnOpen = (Button) findViewById(R.id.btn_open);
        m_btnOpen.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Scene scene = m_sceneControl.getScene();
                scene.open(url, sceneName);
                m_sceneControl.getScene().refresh();
            }
        });
    }catch (Exception e){
    }
}

1个回答

您好,不建议在虚拟机上运行三维程序,因为运行三维程序需要一定的设备性能要求。建议使用真机运行,先看下真机上是否有球面场景显示
9,127EXP 2021年08月25日
真机上也运行了,也是一片空白
您那边先看下我们的示范demo能否正常运行。检查下你的代码是否成功添加了SceneControl控件
试了示范demo也还是一片空白,貌似是在布局中加了scenecontrol控件就导致它成空白的了
你说的一片空白麻烦截图看一下。示范程序应该是没有问题的。确定是用真机上跑的吗?手机是什么型号的呢,具体的Android版本是多少

对就是在真机上跑的,手机型号是GLK-AL00,版本是10

这个不是我们的示范程序吧,你那边运行我们的示范程序看下效果
示范程序不能直接运行,会报这个错误The SDK directory 'D:\supermap\sdk' does not exist.然后我就自己再新建了一个项目,把示范程序的代码复制上去的,然后运行出来就是这种空白页面
示范程序报的这个错应该是你设置的sdk路径不正确,可以改下路径。复制代码的时候有把layout一起完整复制吗?方便的话把你现在运行的工程给我吧
路径改过,但是还是报这个错误,工程怎么发给你呢?
上传百度云盘发我地址就可以
您那边使用的包是64位包还是32位包,使用三维功能建议使用32位包哈。还有你的许可路径写的是手机的路径不是电脑的路径哈
弄好之后,它还是空白的
你怎么写的?产品包是否有更换?把targetSDKVersion版本改为28.
电脑路径:F:/SuperMap/license

产品包更换了,版本也改为了28,在真机上运行完之后还是空白的
许可路径是手机端的许可路径,不是你电脑的路径哈。您那边可以按照api文档的开发入门--开发三维程序走一遍。
我把许可路径换成手机路径之后 /storage/emulated/0/Download/QQMail/,还是没有变化。

你这个路径是错的吧,需要用

String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
Environment.setLicensePath(rootPath+"/SuperMap/license");
不是要手机路径吗,可我手机上没有/SuperMap/license这个路径
我这个是给你的示范代码,意思是这个路径手机里面的许可路径,不是随便一个路径就可以的。
可是这个许可路径不是许可文件存放的路径吗,我的许可文件存放的路径就是这个路径

我的意思是你需要通过上面给你的获取手机内存的代码来进行路径拼接:

String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
Environment.setLicensePath(rootPath+"/storage/emulated/0/Download/QQMail/");

是这样吗?但是还是没有变化

你私信我电话联系方式吧,我电话联系您
...