Problem
After upgrade on Android 4.4.2 Locus Map does not run correctly – crashes or does not run either.
Explanation
Unfortunately, Android 4.4.2 has a new feature that prevents all installed applications from writing data on external SD card. Locus Map cannot correctly store and read your maps, points or tracks if they are stored on SD card. For this reason Locus Map is not able to start.
Who is involved
- Current Locus Map users are affected (issue does not affect new users)
- Only devices with SD card are influenced.
- The issue does not occur on devices with custom ROM
Solution
Solution A – Suggested solution for all devices
Solution B – Use special private folder on SD card
Solution C – How to leave my maps on external SD card
Solution D – Devices with ROOT permission
A. Move Locus Map to the internal storage
- Install arbitrary Android file manager – for example ES File Explorer
- Open it and go to your external SD card (often marked as sdcard1)
- Long tap on Locus folder and choose Copy
- Navigate to the internal memory (often marked as sdcard0) and Paste Locus folder
- Check that process was successful and you can see all Locus Map data on internal storage
- Pull out the external SDcard from phone and connect it to your notebook or desktop computer
- Remove (or rename for safety) Locus folder on the external SDcard. The goal is to have only one Locus folder that is located in internal storage.
B. Move Locus app and maps into a private folder on SDcard
Every app on Android has its own special folder on SDcard in which only this app can write. So it seems to be the best solution how to place maps on SDcard on KitKat. But Locus (in default) does not use it because there are two main weaknesses:
- All content of this folder will be automatically deleted when you uninstall Locus Map. So all your maps will be deleted when you decide to uninstall Locus app.
- Locus Map Free and Locus Map Pro can not share data because every app has seperate folder app
Anyway, if you decide to use this method, follow this procedure:
- Open Locus > Menu > Settings >Miscellaneous >Set Root directory
- Select path which contains „menion.android.locus.xxxx“
- Confirm and close Locus Map
- Connect SD card to a PC and move whole „Locus“ folder to the directory defined in previous step
- Return the SD card back and start Locus
C. How to leave my maps on external SD card
Locus personal maps and Locus vector maps can be stored in external directory on SD card. Please follow steps bellow:
- Connect the card to a PC and create an arbitrary folder on the SDcard for your maps, e.q. MyLocusExternMaps
- Move maps from folders Locus/Maps and Locus/MapsVector to the folder MyLocusExternMaps
- Move folder Locus from SDcard to the internal memory (without map files)
- Start Locus Map (stored in internal folder)
- Open Menu > Maps, from top right menu choose Add Maps > Add, navigate to the folder MyLocusExternMap and confirm on the top panel
The result is that the Locus working directory will be placed on internal memory and all maps will be located in external folder on SDcard. This issue is also described in article Saving offline maps on SD-card under Android 4.4 (KitKat)
D. Rooted devices
- In case your device is rooted you can fix it by editing the system configuration
- Install application SDFix and perform the system changes
- After that simply start Locus Map
For more information please see:
- http://support.solidexplorer.pl/responses/kit-kat-442-issue
- http://www.chainfire.eu/articles/113/Is_Google_blocking_apps_writing_to_SD_cards_/
Why Locus developers didn’t fix it?
Every application can create its own package-specific directories on SD card and use it for writing own data – see point B. Unfortunately there are more reasons why this solution is not suitable for Locus app:
- Locus Map has more than one version and every version has special package name (it has to be), which means every version will have its own unique directory.
- These directories are automatically removed after un-installation of Locus app. This is not convenient in case you have GBytes of map files.
General information about this issue
9 Comments
Hi,
I'm not Android developer, but AFAIK there are already available applications (non-system, not-rooted) which are able to write (delete, rename) files on external SD card. Hope you will investigate in this 'issue' to find some solution for Locus to work again with SD card.
BTW: no problems with Locus moved to internal storage so far (on Galaxy Note 3, KitKat).
Just FYI, thanks for great product anyway!!
Hi,
can you give me please some example, please? We'd like to solve it, so every idea is welcome. Maybe additional note: Application can save data into private folder managed by Android system. But this is not applicable to Locus because we need/want to have data in folder called Locus.
Hi.
Latest (3.1.1) version of ES File Explorer can create or write to any folder on extSD. Previous can't - verified. :-)
Hi,
It seems that ES File Explorer uses probably some hack via the media content files. We'll be watching it.
Thank you
Locus Map do you developers read the release notes? All you have to do is create a sub folder in your applications folder on the external sdcard and everything will work fine. For example:
Android/data/com.locus android/files
Downloaded maps etc go into the files sub folder and everything will work just fine.
Simply update your app to the new requirements
Hello Keith,
thank you for you comment. I'll forward this discussion on Google+ ( https://plus.google.com/118282045438155427142/posts/JCAER8nGWAW ) to keep it on one place.
hey devs,
the current version only works with locus on internal storage (sd)? why you dont check if device is rootet or not? i can't copy locus folder to the internal storage because there is no more space.
this is a dissatisfying situation :(
Hi,
please see section Solution C – Devices with ROOT permission in this article. Users with rooted devices don't need to move data into internal memory. You only need to change android permission.
We're a group of volunteers and starting a new
scheme in our community. Your website provided us with valuable information
to work on. You have done an impressive job and our whole community will be grateful to you.