Android Skobbler Maps 2.4 SDK - сбой в работе карт с предустановленными картами

Я уже довольно давно использую старую версию карт Скобблера и считаю ее довольно успешной. Недавно я приступил к обновлению до версии 2.4, чтобы получить некоторые дополнительные функции, предоставляемые в этой версии (основная функция, которая меня интересует, - "точки через").

Я могу запустить проект AndroidSDKDemo. Я могу запустить свой собственный проект. Но как только я добавляю автономный пакет, приложение каждый раз при запуске вылетает с "Fatal Signal 11 0x00000004".

После того, как я добавил пакет автономных карт в файл SKMaps.zip, не имеет значения, установил ли я режим подключения в онлайн или в автономном режиме, приложение по-прежнему аварийно завершает работу, основываясь только на наличии файлов в предустановленной папке карт.

Я скачал пакет автономных карт через проект AndroidSDKDemo. Затем я использовал команду android "adb backup -noapk" для создания сжатой версии файлов приложения и извлек папку SKMaps. Затем я переместил папку "v1" из "Карты" в "PreinstalledMaps" и заархивировал файл, а затем добавил этот файл в мое тестовое приложение (которое вылетает) в папке активов.

Также кажется, что сбой может иметь какое-то отношение конкретно к SKMaps.zip... Если я возьму файл SKMaps.zip из демонстрационного проекта (без изменений, только что скачанный прямо из Интернета), и поместу его в мое тестовое приложение - приложение работает отлично. Если я возьму папку SKMaps, которая была создана в резервной копии (и, следовательно, содержит информацию в папке "Карты", и не перемещая НИЧЕГО в этом файле (даже не перемещая ничего в "/PreinstalledMaps"), и помещу эту папку в мой тест проект, приложение вылетает.

У кого-нибудь есть идеи, как мне решить эту проблему? Это очень расстраивало меня, так как я не могу понять, почему все не работает. Возможно, я что-то делаю не так, но я заблудился относительно того, что это может быть.

Заранее спасибо за помощь

3 ответа

Решение

Оказывается, я был немного глупым. Я сжимал папку SKMaps вместо файлов внутри папки SKMaps. Это означает, что мой почтовый индекс выглядел так:

SKMaps.zip/SKMaps/PreinstalledMaps /...

Это должно было выглядеть так: SKMaps.zip/PreinstalledMaps /...

Простое решение, но оно не было сразу очевидно для меня.

Извиняюсь за трату времени.

У меня была похожая проблема при загрузке карт в SDK 2.3. Я решил это, выполнив эту ветку перед инициализацией Карт.

final SKPrepareMapTextureThread prepThread = new SKPrepareMapTextureThread(this, mapResourcesDirPath, zip, this);

prepThread.start();

Когда метод:

@Override
    public void onMapTexturesPrepared(boolean arg0) {

}

Вызывается " onMapTexturesPrepared ", вы можете инициализировать Карты с предустановленными картами:

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

Я надеюсь, что это помогает, это сработало для меня.

Структура из файла SKMaps.zip должна быть такой же, как и в демонстрационной версии, изменение или удаление любых файлов может привести к неожиданному поведению в худшем случае, если приложение вылетает.

Для использования автономных карт сначала необходимо установить preinstalledMapsPath (в нашем методе AndroidSDKDemo DemoUtils initializeLibrary раскомментирует initMapSettings.setPreinstalledMapsPath(app.getMapResourcesDirPath() + "/PreinstalledMaps");), а затем существует 2 способа

  1. Измените ресурсы следующим образом: распакуйте архив SKMaps zip и добавьте карту.skm для 2.4 в папке PreinstalledMaps/v1/20141230/package/ заново создать архив в ресурсах<- этот метод, к сожалению, не очень надежен для большой карты пакеты
  2. Другой вариант - добавить пакеты вручную. В нашем AndroidSDKDemo по умолчанию, и, если есть место, ресурсы карты размещаются во внутренней памяти, но это можно изменить в SplashActivity в методе chooseStoragePath, чтобы метод возвращал только context.getExternalFilesDir(null).toString(). Используйте приложение файлового менеджера (например, Astro File Manager) скопируйте файлы в [внешнее хранилище]/Android/data/com.skobbler.sdkdemo/files/SKMaps/PreinstalledMaps/v1/20141230/package/
Другие вопросы по тегам