你好,我找到本地资源且似乎是打开了,但再执行scene.open(name)的时候,程序崩溃了。
代码如下:
if (null == sceneControl) {
sceneControl = new SceneControl(mContext, SceneType.ST_EARTH_SPHERICAL);
layoutBinding.mapviewContainer.addView(sceneControl);
sceneControl.sceneControlInitedComplete(s -> {
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo();
connectionInfo.setServer(String.format("%s/SampleData/CBD_android/CBD_android.sxwu", Environment.getExternalStorageDirectory().getAbsolutePath()));
connectionInfo.setType(WorkspaceType.SXWU);
Workspace workspace = new Workspace();
if (workspace.open(connectionInfo)) {
Scene scene = sceneControl.getScene();
scene.setWorkspace(workspace);
Scenes scenes = workspace.getScenes();
String name = scenes.get(0);
scene.open(name);
}
});
}
资源目录如图:
所有的jar包和.so文件全已放入工程中。
异常日志如下:
--------- beginning of crash
2020-11-03 17:20:33.183 29168-29302/com.tdzc.smkmap E/AndroidRuntime: FATAL EXCEPTION: Thread-505
Process: com.tdzc.smkmap, PID: 29168
java.lang.UnsatisfiedLinkError: No implementation found for long com.supermap.realspace.Layer3DVectorNative.jni_GetFieldInfos(long) (tried Java_com_supermap_realspace_Layer3DVectorNative_jni_1GetFieldInfos and Java_com_supermap_realspace_Layer3DVectorNative_jni_1GetFieldInfos__J)
at com.supermap.realspace.Layer3DVectorNative.jni_GetFieldInfos(Native Method)
at com.supermap.realspace.Layer3D.(Layer3D.java:45)
at com.supermap.realspace.Layer3DOSGBFile.(Layer3DOSGBFile.java:41)
at com.supermap.realspace.Layer3D.createInstance(Layer3D.java:376)
at com.supermap.realspace.Layer3Ds.resetLayer3DsArr(Layer3Ds.java:52)
at com.supermap.realspace.Layer3Ds.(Layer3Ds.java:36)
at com.supermap.realspace.Layer3Ds.createInstance(Layer3Ds.java:127)
at com.supermap.realspace.Scene.getLayers(Scene.java:275)
at com.supermap.realspace.Scene.fromXML(Scene.java:452)
at com.supermap.realspace.Scene$1.run(Scene.java:501)
at android.os.Handler.handleCallback(Handler.java:914)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:224)
at com.supermap.realspace.SceneControl$RenderThread.run(SceneControl.java:684)