Solutions:
You might experience an issue with the new OsmAnd version working with Android 5 devices. It is known and we’re working to fix it as soon as possible. Please read more on GitHub. OsmAnd doesn’t ask specific permissions to get access to random folder on device, though we expect that the standard path on the SD card (Android/data/net.osmand.plus/files/osmand) should work. You can try to enter the path manually in order to make it work.
This happens only for the OsmAnd+ paid version and it is a known Google Play issue (this is reproducible for other paid applications copied to SD card).
Symptoms: Application was installed on SD card and update fails
Possible solution:
Because this issue happens before the OsmAnd app even starts, this issue cannot be fixed in OsmAnd, but needs to be fixed by Google Play. Please turn to Google Play — Help — Contact Us and report the issue there so Google can fix it. (The issue happens only for some devices and Android versions.)
On most systems the following procedure can be used to reset or uninstall/reinstall OsmAnd while preserving the original app data on the SD card:
If you have an error "-25/-26/-27" please read below, otherwise please contact support. The issue you are experiencing is now confirmed as Xiaomi MIUI's integrated anti-virus' fault. To avoid error "-25/-26/-27", you need to freeze the "Guard Provider" process before updating OsmAnd. Then, once updated, you can re-enable the process. There are many ways and tools to freeze a process. We suggest you to google it yourself, although some of our users used 3C Toolbox or App Master, but we leave this to your preference.
To freeze a process, follow these steps: go to App Manager --> Apps tab --> filter by System Apps --> select the "Guard Provider" --> tap the Manage button (bottom right, four little squares) --> Freeze. To unfreeze, repeat the same procedure. Unfortunately "App Master" does not do freeze in the OsmAnd Free version. 3C Toolbox does the trick, but you will find the "Guard Provider" process as "com.securitycore.miui_t" under "Apps" with the filter on "System".
Sometimes you might want to uninstall the app because you want to install the paid version or a nightly develompment build, and you find that the "UNINSTALL" option is inactive.
This is because OsmAnd has been configured as "Device Manager" by you as user.
In hiking/cycling mode OsmAnd can be configured to switch off the screen and switch it on just before a navigational change of direction is necessary.
To make this possible in Android, OsmAnd is added to the "Device administrators" section. This is the reason you can't uninstall OsmAnd.
To uninstall OsmAnd in such a case you need to go to (Android) "Settings->Security->device administrators" and uncheck OsmAnd as a device administrator. After having done that you can uninstall OsmAnd.
You can leave notes for future usage in several forms:
To remove search history, please open the Search menu, make a long tap on any search result and select which results to delete. You can also enable the select all option in the upper-left corner of the screen to remove all of the search results. After that, please press the Trash icon in the upper-right corner of the screen.
You can also follow this guide to lern more about the search in OsmAnd
Please be aware that there are 2 offline routing engines in the app: a Java based approach and a "Native" (C++) routing. The Java based approach is used in 'Safe Mode', it is 10 times slower than native mode and it has strict memory limitations. If you experience it and you see messages 'Not enough memory to compute', please go to Settings — 'General' — 'Safe mode' and make sure the option is disabled.
For native routing there are different limitations for different phones, depending on memory & processor. In general, native routing should handle < 300 km routes nicely. The route calculation should take between 15 sec and 4 minutes. It is prudent to not wait much longer than 4 minutes, because most likely the program will crash.
The only known workaround to compute long routes is to insert intermediate destinations. Two additional intermediate destinations should be enough even for very long routes.
TTS (text to speech) synthesizes any voice prompt just from a specified text "on the fly", while recorded voices depend on combining every command from a set of snippets pre-recorded from a human voice.
In OsmAnd, we recommend using a synthesized (TTS) voice. They are better maintained by the project developers to provide the latest feature set. Since they are more flexible, they are e.g. able to also pronounce street names or highway numbers (OsmAnd version 1.5.1 and newer), which pre-recorded voices can not. TTS prompts may on some devices sound a bit more "robotic", and the selection of languages actually supported on your device is more limited. Both what languages are supported and their voice quality strictly depend on the TTS engine installed on your device, not on OsmAnd. See also next section "TTS does not function properly".
I suggest that recorded voices should only be a fallback if you really like a particular voice, or if you cannot find a TTS engine supporting your language. Many 'recorded' voices have significant shortcomings like gaps and unnatural intonation, and some phrases may be missing entirely, where for a maintenance like adding new commands we could not get access to the original speakers any more.
TTS issues will usually have to be fixed in your Android configuration and settings, not within the OsmAnd app!
Which TTS languages are supported on your device and the sound quality of each TTS voice strictly depends on the TTS engine you select (or install) via your Android device settings. There is usually one TTS engine pre-installed on each device (e.g. google, Samsung, Pico). An additional 3rd party engine (see below) can be installed if needed.
A TTS engine often supports several languages, but one needs to be selected as the one to be used. To improve the voice quality: Some TTS engines come pre-installed with only a set of basic-quality pronunciation packages for the languages they support, and then faciliate downloading a high-quality package for the very language you actually select to be used.
If you have issues with the TTS voice guidance:
It is a known issue that many pre-installed TTS engines may not support less widely spoken languages (even though the number of languages supported is growing). You can always try to find a 3rd party TTS engine supporting the language you are looking for: Install it on your device, and follow the above procedure. This should then provide TTS support for this language. Some of the more prominent TTS engines are:
You can also follow this guide to lern more about the search in OsmAnd
Most of these issues are map data issues and should be double-checked via OpenStreetMap. If you can see that data is present there (note that it takes some time for new OSM data to appear in OsmAnd maps), then the problem is in OsmAnd's algorithm or how that data is structured.
The most common issue is that streets exist but are not found in a city, and this is due to missing evidence in the OSM data to what town/city the street belongs. In OsmAnd's address search you can try the button "Search in neighbouring cities" if you do not find a street as expected.
To investigate this problem you can use the BinaryInspector tool from OsmAndMapCreator, installation of which shows you exact information on what is in the obf file. Most probably you will find your street in a neighboring town. If you decide to report an issue, please specify all relevant information in its description.
If you want to see more detail about why these issues occur in OsmAnd's algorithms, please read this article.
You can also follow this guide to lern more about the search in OsmAnd
OsmAnd uses OpenStreetMap (OSM) as the source of the map data.
This map is built collaboratively by Internet users. There are some advantages of this approach, like changes to roads or POIs can appear very quickly. But there are also disadvantages, like missing data (house numbers as an example), as the data is not overall checked for consistency.
You can make OpenStreetMap better by adding any missing data. Information about OSM and how to participate is published here: OpenStreetMap and here: LearnOSM.
You can also follow this guide to lern more about the search in OsmAnd
There have on and off been user reports about this. We made lots of measurements and could never really reproduce it, even though under some circumstances OsmAnd is reported responsible for 90% of the battery usage. Please be aware that OsmAnd does not run anything in background except its Sleep mode (background service), and this needs to be specifically enabled (via OsmAnd's GPX recording or Navigation guidance functionality). If enabled, you will always see the OsmAnd sleep mode icon in the status bar (can also be stopped there). So unless the sleep mode is active, if you exit the app (go to home screen), OsmAnd will will not cause any power consumption.
Power usage issues were reported with Android 2.3 and Android 4.0. In Android 4.0 you can double-check details of what causes how much battery drain. If you check CPU time / screen time / GPS time consumed by OsmAnd (in Android's standard power manager) you will see that the numbers don't add up correctly. For example, 2 min GPS, 2 min CPU, 1 min Screen causes 30% consumption. If you have some better good evidence, please contact us.
PS: If you use OsmAnd for hiking or otherwise carry your device in a loose pocket where you might press the device's power switch accidentally, it is also advisable to put OsmAnd to the background (by hitting the device's Home button), before putting the device to sleep. Reason: If OsmAnd's map screen is the foreground application, any accidental (unnoticed) push on the power button will not only activate the screen briefly (this is unavoidable), but may then also briefly activate GPS, which is quite a battery eater.
If you experience this, first of all check if not the corresponding setting 'Prevent standalone logging' is active in OsmAnd's settings under Plugin/Trip recording.
Secondly, update OsmAnd to 3.4 or higher. Different Android versions apply different strategies to reduce power consumption by killing apps running in the background. New versions of Android therefore deploy a Foreground service while recording a trip, visible in the Android notification bar, in an effort to keep the app active.
If you still experience issues, you may want to try these measures:
Update Android 9, Hardy, 2020-03-01: I have successfully tested the following Power saving settings under Android 9 (on Samsung devices), with particular attention if OsmAnd logging works reliably:
OsmAnd is protected by the Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Generic (CC BY-NC-ND 2.0) and GNU GENERAL PUBLIC LICENSE, Version 3 with an exception.
We strongly insist that you read https://github.com/osmandapp/Osmand/blob/master/LICENSE in order to comply with the rules protecting OsmAnd.
The code in that repository is mainly covered by GPLv3, except some 3rd party libs and resources.
ATTENTION: please be aware that some artwork has a proprietary license.
EXCEPTION of GPLv3: Publishing applications using the OsmAnd GPLv3 code to Google Play, Amazon Market or Apple Store should be done with written permission.
All visual elements in OsmAnd applications, such as icons, banners, etc. are protected by the CC BY-NC-ND 2.0 license. Thus, you must meet certain rules concerning them. You must indicate that the OsmAnd company does not endorse your work and is not connected to it.
If you remix, transform, or build upon the material, you may not distribute the results. This means that the visual content of OsmAnd app and its elements can not be changed and then distributed.
CC BY-NC-ND 2.0 license applies to all graphic elements used in the software. To use them, you need to give appropriate credit, provide a link to the license, and indicate if changes were made.
You must give appropriate credit to the original OsmAnd content: indicate the use of the original OsmAnd content. In particular, you need to add this information:
Also, it is prohibited to use any OsmAnd visual elements for commercial purposes without a special agreement with the author.
For example, you can use the visual content of the application to make a new app that will be distributed for non-commercial purposes as long as you mention OsmAnd properly in the application information, but it is forbidden to sell that application or change the original icons and other visual elements.
OsmAnd source code is open and is protected by the GNU GENERAL PUBLIC LICENSE, Version 3 with an exception. The basic rights it provides are the following: you can run the application for any purpose, you have the freedom to view the application's source code, study the way the app works and change that source code, and you can freely distribute the source code of the application or its changed versions.
However, you are obliged to ensure free access to the code you produced if you change the OsmAnd source code and distribute the results of your work. Also, the visual elements of OsmAnd application are protected by the Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Generic (CC BY-NC-ND 2.0) that eliminates any possibility of derivatives upon those elements and you must ensure compliance with that license.
To eliminate any misreading of the licences, we strongly encourage you to read the full versions before developing your own projects based on OsmAnd or somehow related to it. Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Generic (CC BY-NC-ND 2.0) GNU GENERAL PUBLIC LICENSE, Version 3
Good luck with your work.
In order to setup development environment you need to install repo utility and use the following repo manifest!!!
You can also use only git and checkout following git repositories into correct folder names:
First of all you need to setup development environment as mentionned above.
Specify environment variable and install software (check build.gradle):
# The ANDROID_SDK and ANDROID_HOME are where Android studio placed stuff
export ANDROID_SDK=/[your-path]/Android/sdk
export ANDROID_NDK=/[your-path]/android-ndk-r17b
export ANDROID_HOME=/[your-path]/Library/Android/sdk
You can also use our debug.keystore to make builds compatible with nightly build.
Gradle: cd android/OsmAnd && ../gradlew cleanNoTranslate assembleFreedevLegacyFatDebug
Android Studio: import android project and choose flavor 'assembleFreedevLegacyFatDebug'.
Install command-line tools:
Install cmake (exactly this version!)
Add this line to your .zshrc file: PATH="/Applications/CMake.app/Contents/bin":"$PATH"
Reload your .zshrc file: source ~/.zshrc
Verify everything works: cmake --version
Run: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Install imagemagick with librsvg
brew install
https://github.com/Homebrew/homebrew-core/raw/46a2ef7c9f0380b8e19f8dfe37270caa27581353/Formula/imagemagick.rb --with-librsvg
Clone manually or via google repo tool: https://github.com/osmandapp/OsmAnd-manifest/blob/master/jenkins_ios.xml --with-librsvg
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ repo init -u https://github.com/osmandapp/OsmAnd-manifest/blob/master/jenkins_ios.xml
after doing this, repo is installed, but "google repo tool couldn’t obtain manifest"
if clone manually, in some cases “revision” is specified. You should use git clone -b (ex: < project path="core-legacy" name="osmandapp/OsmAnd-core.git" revision="legacy_core" />
must be: git clone https://github.com/osmandapp/OsmAnd-core.git -b legacy_core core-legacy )
Please refer to our English en-tts file for basic reference and as template, and consider to look at grammatically more complex languages like German (de-tts), Czech (cz-tts), or Slovak (sk-tts) to cover more complex statements. There should be a way to correctly produce what needs to be done - the PROLOG used in the tts-config.p files is a powerful programming language.
Regarding distribution: In the latest versions the tts voices are distributed within the app (apk) and need not / cannot be downloaded any more via the download server on the web. (Don't be confused, they still appear like downloads in the app's Offline Data Manager, but they are listed there only and contained locally). The basic idea is that TTS files will not be updated too frequently, so in general it is sufficient to have them distributed with each release, within the application.
The file you try to process with OsmAndMapCreator is too large. Either try to process a smaller file, or increase the memory for OsmAndMapCreator in the .sh or .bat file. The -Xmx parameter specifies how much memory the program can consume. Settings can be different for 64bit (more than 1.5GB) and 32bit (max around 1.5GB) machines.
It could be that a crucial tag was missing for OsmAndMapCreator to recognize a POI when you converted the osm from another source, like Garmin. If a point in the OSM file looks like this:
change it to contain an additional 'amenity' tag, like:
Then convert the file using OsmAndMapCreator. You can check on the OSM site what tags are good ones to use, or you can just use this amenity.
See http://stackoverflow.com/questions/120797/how-do-i-set-the-proxy-to-be-used-by-the-jvm Use OsmAndMapCreator.bat or OsmAndMapCreator.sh to start OsmAndMapCreator based on your operating system. Both of them invoke java, so you just need to add the -D... -D.. (i .e. -Djava.util.logging.config.file = logging.properties) params to the invocation. like:
after:
OsmAndMapCreator can process only OSM files (osm-xml, bz2, pbf). However the set of tags can be customized. To specify what tags/values need to be indexed by Creator please download and change this file https://github.com/osmandapp/OsmAnd-core/blob/master/OsmAnd-java/src/net/osmand/osm/rendering_types.xml. OsmAndMapCreator has an option to use custom rendering_types.xml in the settings. Once the map file is created you can double check that data is present via the binaryInspector utility with the '-vmap' argument. This utility is packaged with OsmAndMapCreator.
Once the .obf file is ready you can create a custom rendering file to display your custom missing attributes. There is a default rendering style which contains all information about rendering https://github.com/osmandapp/OsmAnd-resources/blob/master/rendering_styles
Currently OsmAndMapCreator doesn't support relation tagging. So you need to manually copy all tags from relations (like route color) to way tags by script.
The Google Play Store provides the possibility to test beta versions of apps, which enables you to (temporarily) download and use the test version from the Google Play Store instead of the standard release version(s).
For OsmAnd this means that you can participate in testing the new OsmAnd free or the new OsmAnd+ paid versions. This enables you to use and test exciting new features. Of course, using a beta version also means that you might encounter bugs or app crashes.
The Google Play Store mechanism also supports the easy return to the standard version from the Google Play Store.
Register as tester for the OsmAnd free test version via the following Google Group: https://play.google.com/apps/testing/net.osmand Register for the OsmAnd+ paid test version via the following Google Group: Testing (note: this is only possible if you are a registered user for the paid version)
Note that the same registration screen, after having registered, also has a link "Leave the test version". If, after some time, you want to use the current standard release version from the Google Play Store again, proceed as follows: