首页 / 浏览问题 / 移动GIS / 问题详情
Android studio 导入范例不成功
35EXP 2020年03月25日

我导入运行的是室内导航的范例,为什么会这样报错呢?我运行其他范例的时候也会这样报错

 Environment.initialization(this);//报错的就是这行

Caused by: java.lang.NullPointerException: Attempt to get length of null array
        at com.supermap.data.Environment.checkAndLoadLibrary64(Environment.java:1632)
        at com.supermap.data.Environment.initialization(Environment.java:576)
        at com.supermap.indoornavigation.MainActivity.onCreate(MainActivity.java:117)
        at android.app.Activity.performCreate(Activity.java:5990)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
        at android.app.ActivityThread.access$800(ActivityThread.java:151) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5254) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      
        //不使用OpenGL模式显示
        Environment.setOpenGLMode(false);
      
        //设置许可文件路径
        Environment.setLicensePath(sdcard + "/SuperMap/license/");
             
        //组件功能必须在 Environment 初始化之后才能调用
        Environment.initialization(this);//报错的就是

        setContentView(R.layout.activity_main);
          
        //打开工作空间
        m_wokspace = new Workspace();
        WorkspaceConnectionInfo info = new WorkspaceConnectionInfo();
        info.setServer(sdcard+"/SampleData/IndoorNavigationData/beijing.smwu");
        info.setType(WorkspaceType.SMWU);
        m_wokspace.open(info);
              
        //将地图显示控件和工作空间关联
        m_mapView = (MapView)findViewById(R.id.Map_view);
        m_mapControl =  m_mapView.getMapControl();
        m_mapControl.getMap().setWorkspace(m_wokspace);

1个回答

您好,确认是否开启动态权限,可以在设备的权限管理里面查看app的权限设置,看是否都开启;在grandle文件里面设置ndk:

ndk {
            abiFilters "armeabi-v7a","armeabi"
        }
9,192EXP 2020年03月26日

谢谢你的回答,我添加了之后会这样报错呢(Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.),我在sdk下载了ndk的,并且把ndk路径加到了环境变量中,我也是在那个文件的最后一行添加了那句话的

遇到错误建议您先上网搜索一下,这是Android本身的错误,参考下面博客:https://blog.csdn.net/u011325156/article/details/51645974

嗯,我是先搜索过了的,也搜到了这篇文章,两种方法都试了,没解决,所以才问的sad

您好,方便的话可以把你的工程打包发给我,我这边修改一下
太谢谢您了,是通过qq还是邮箱发给您呢?我的QQ是1210983648
发我邮箱吧,我私信你邮箱
...