Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Skobbler地图2.4 SDK-离线/预捆绑地图崩溃_Android_Skmaps - Fatal编程技术网

Android Skobbler地图2.4 SDK-离线/预捆绑地图崩溃

Android Skobbler地图2.4 SDK-离线/预捆绑地图崩溃,android,skmaps,Android,Skmaps,我已经使用了一段时间的老版本的Skobbler地图,并发现它是相当成功的。我最近开始升级到2.4版,以获得该版本中提供的一些额外功能(“通过积分”是我感兴趣的主要功能) 我可以让AndroidSDK演示项目运行。我可以让我自己的项目运行。但只要我添加一个离线软件包,应用程序每次启动时都会崩溃,并发出“致命信号11 0x00000004” 在我将offline maps软件包添加到SKMaps.zip文件后,无论我将连接模式设置为online还是offline,应用程序仍然会崩溃,这取决于预安装的

我已经使用了一段时间的老版本的Skobbler地图,并发现它是相当成功的。我最近开始升级到2.4版,以获得该版本中提供的一些额外功能(“通过积分”是我感兴趣的主要功能)

我可以让AndroidSDK演示项目运行。我可以让我自己的项目运行。但只要我添加一个离线软件包,应用程序每次启动时都会崩溃,并发出“致命信号11 0x00000004”

在我将offline maps软件包添加到SKMaps.zip文件后,无论我将连接模式设置为online还是offline,应用程序仍然会崩溃,这取决于预安装的maps文件夹中存在的文件

我通过AndroidSDK演示项目下载了离线地图包。然后,我使用android“adb backup-noapk”命令创建应用程序文件的压缩版本,并提取SKMaps文件夹。然后,我将“v1”文件夹从“Maps”移到“PreinstalledMaps”中,压缩文件,然后将该文件添加到资产文件夹中的测试应用程序(崩溃的应用程序)中

它还显示,崩溃可能与SKMaps.zip有关。。。如果我从演示项目中获取SKMaps.zip文件(未更改,只是直接从web下载),并将其放在我的测试应用程序中,该应用程序工作正常。如果我将备份中的SKMaps文件夹(因此包含“Maps”文件夹中的信息,并且没有移动此文件中的任何内容(甚至没有将任何内容移动到“/PreinstalledMaps”),并将此文件夹放在测试项目中,应用程序将崩溃

有人对我如何解决这个问题有什么想法吗?这让我非常沮丧,因为我无法真正理解事情为什么不起作用。我可能做错了什么,但我不知道这可能是什么


提前感谢您的帮助

SKMaps.zip中的结构必须与演示中的结构相同,修改或删除任何文件可能会在更糟糕的情况下导致一些意外行为应用程序崩溃

要使用脱机映射,首先必须设置预安装的MapsPath(在我们的AndroidDKDemo DemoUtils方法initializeLibrary uncomment initMapSettings.setPreinstalledMapsPath(app.getMapResourcesDirPath()中) +“/PreinstalledMaps”);)然后有两种方法


  • 按以下方式更改资产:解压缩SKMaps zip并在PreinstalledMaps/v1/20141230/package/Re make the archive in assets文件夹中为2.4添加.skm映射在sdk 2.3中加载映射时,我遇到了类似的问题。 我通过在初始化映射之前执行这个线程解决了这个问题

    final SKPrepareMapTextureThread prepThread = new SKPrepareMapTextureThread(this, mapResourcesDirPath, zip, this);
    
    prepThread.start();
    
    当使用该方法时:

    @Override
        public void onMapTexturesPrepared(boolean arg0) {
    
    }
    
    调用“onMapTexturePrepared”,您可以使用预安装的映射初始化映射:

    initMapSettings.setPreinstalledMapsPath(mapResourcesDirPath+"/PreinstalledMaps");
    (....)
    SKMaps.getInstance().initializeSKMaps(getApplicationContext(), initMapSettings, API_KEY);
    

    我希望这对我有帮助,它对我有用。

    结果证明我有点愚蠢。我压缩的是SKMaps文件夹,而不是SKMaps文件夹中的文件。这意味着我的zip看起来像这样:

    SKMaps.zip/SKMaps/PreinstalledMaps/

    它需要看起来像这样: SKMaps.zip/PreinstalledMaps/

    这是一个简单的解决方案,但我并没有立即意识到这一点


    很抱歉浪费时间。

    我们正在调查。如果有帮助的话:我使用的是Mac,Eclipse(不是Android studio),我正在使用此工具:将Android备份提取到.tar中,然后我可以浏览。如果您愿意,我可以向您提供崩溃应用程序的完整源代码。请告诉我,我很乐意做任何有助于解决此问题的事。请将SKMaps.zip发送到dev@skobbler.com这样我们就可以自己测试一下您的详细问题帮助我了解了如何从示例中提取脱机地图,因为这部分的文档是错误的,因为您无法获取文件,因为他们说选项2不是一个选项。这是一个内部应用程序,将通过第三方技术安装在已锁定的手机上,用户将不需要访问文件系统。值得注意的是,我正在使用的测试设备并非如此。我已经完成了选项1。这是不起作用的。选项1每次都会使我的应用程序崩溃。这次崩溃浪费了1天时间,并看到了您的共享体验-至少为我节省了1天时间。谢谢!似乎onMapTexturesPrepared确实如此不检查复制的资源的结构,只检查复制操作,这是不好的,因为开发人员非常依赖这个回调。