c:geo - The powerful Android geocaching app.
Java HTML Shell
Switch branches/tags
market_20180626 market_20180205 market_20171217 market_20171216 market_20171206 market_20171022 market_20171022_legacy market_20171010 market_20171010_legacy market_20170823 market_20170724 market_20170522 market_20170509 market_20170332_legacy market_20170329 market_20170319 market_20170231-legacy market_20170230-legacy market_20170207 market_20170115 market_20161228 market_20161105 market_20161023 market_20161013 market_20160922 market_20160827 market_20160816 market_20160814 market_20160609 market_20160508 market_20160412 market_20160306 market_20160203 market_20160119 market_20151129 market_20151030 market_20150928 market_20150923 market_20150915 market_20150803 market_20150708 market_20150619 market_20150615 market_20150331 market_20150328 market_20150312 market_20150223 market_20150120 market_20150112 market_20141222 market_20141212 market_20141209 market_20141104 market_20141103 market_20140918 market_20140902 market_20140902-legacy market_20140829 market_20140828 market_20140827 market_20140827a market_20140727 market_20140727-legacy market_20140718 market_20140718-legacy market_20140712 market_20140612-legacy market_20140611 market_20140515-legacy market_20140514 market_20140430 market_20140419 market_20140410-legacy market_20140401 market_20140401-legacy market_20140331 market_20140330 market_20140204 market_20140125 market_20140122 market_20140106 market_20131023 market_20130919 market_20130826 market_20130824 market_20130725 market_20130605 market_20130532 market_20130531 market_20130522 market_20130518 market_20130516 market_20130513 market_20130403 market_20130221 market_20130207 market_20130110 market_20130107 market_20121218 market_20121212
Nothing to show
Clone or download
Latest commit 89aa82b Jul 18, 2018
Failed to load latest commit information.
.github Update ISSUE_TEMPLATE.md Feb 21, 2017
.idea enable cgeo checkstyle in IDEA Mar 9, 2018
android-support-v7-appcompat remove all IML files Jul 3, 2017
cgeo-calendar Fix #2038: Provide calculator in edit waypoint activity Jul 29, 2017
cgeo-contacts Added Greek May 17, 2018
common/src/cgeo/contacts fix #6367: replace calendar plugin by intent method Feb 28, 2017
crowdin Fix #6623, Switch crowdin access to https://api.crowdin.com Jun 30, 2017
gradle/wrapper upgrade gradle to 4.7 May 2, 2018
main Merge branch 'fix_5900' Jul 17, 2018
mapswithme-api #6908 use minsdk 14 everywhere Jan 8, 2018
nine-old-androids ignore unused suppresswarnings in library project Jul 18, 2017
play-services-base remove all IML files Jul 3, 2017
play-services-basement make eclipse build with google api 23 too Sep 17, 2016
play-services-location remove all IML files Jul 3, 2017
showcaseview Fix #2038: Provide calculator in edit waypoint activity Jul 29, 2017
templates Move main/template/private.properties to template/private.properties Nov 18, 2015
tests Allow merging of more than two sets of parameters Jun 20, 2018
undobar remove all IML files Jul 3, 2017
viewpagerindicator make eclipse build with google api 23 too Sep 17, 2016
.derived exclude some files from search in Eclipse Mar 6, 2016
.gitignore releng: do not ignore idea checkstyle settings Jun 2, 2018
Jenkinsfile Check before create dir or file Aug 18, 2017
LICENSE Fixes #2946, Replace license file Jul 4, 2013
NOTICE Fixes #2946, Replace license file Jul 4, 2013
README.md Checkstyle for Android Studio Jan 10, 2018
build.gradle upgrade ribbonizer May 4, 2018
checkstyle.xml Checkstyle for Android Studio Jan 10, 2018
gradle.properties android-gradle-3.0 Dec 31, 2017
gradlew upgrade gradle Mar 3, 2018
gradlew.bat upgrade gradle to 3.4.1, regenerate wrapper Mar 11, 2017
settings.gradle avoid gradle warning about root project name Nov 1, 2017
suppressions.xml moved checkstyle config to root Mar 7, 2017


c:geo is an open source, full-featured, always ready-to-go client for geocaching.com (unofficial) and offers basic support for other geocaching platforms. It does not require a web browser or exports - just download and start right away.

You want to contribute?

Perfect! Please tell us in the issue tracker before hacking on your great new feature. It would be bad if you have implemented something great, but we can't include it because it doesn't fit the remaining architecture and code. You might also want to chat with the developers on channel #cgeo on the freenode IRC network.

Project status

Build Status
Codacy Badge

Get the source

Fork the project source code, make changes to your clone and create a pull request afterwards.


  • master is for development of new features. Nightly builds are created from this branch.
  • release is for all bug fixes of already existing features. So if a bug is reported in released version, it should be fixed on this branch (and merged to master afterwards).

A more complex bugfix can be first tested against the master branch and integrated in the nightly builds, while kept compatible with the release branch for a later integration. Such a procedure is described in the wiki.

Setting up an IDE

Make sure to use Java 8 for your IDE and build process. Some of the involved tools require it, even though the source code is Java 7 only.


We removed the support for development in Eclipse, once we switched to a gradle based build. The cause for this is that Google dropped the ADT for eclipse support (https://android-developers.blogspot.de/2016/11/support-ended-for-eclipse-android.html).

Still, there are developers in the project that uses both eclipse and Android Studio (or IntelliJ IDEA). They use eclipse for writing code/testing and Android Studio (or IntelliJ IDEA) for building.

Here are instructions on how to setup the eclipse environment and clone the repositories as part of that setup.

  • Install the Eclipse installer for your OS from http://eclipse.org/downloads/. Do not choose any of the pre-made distributions like "Eclipse IDE for Java developers".
  • Start the installer, switch to advanced mode. On the first page of the wizard choose "Eclipse IDE for Java developers" and use "Next".
  • On the second wizard page use the "Plus" icon (you will have to search for it for a while), select the github catalog, and add the URI https://github.com/cgeo/cgeo/raw/master/main/project/eclipse%20installation/cgeo.setup. Now select the newly create tree node "cgeo" and use next.
  • On the third wizard page add your github user name and password. Adapt the "root installation folder", the folder cgeo will be created in there and everything will be downloaded and copied to the cgeo folder. That means that if you have a projects directory where you store many projects, it is a good candidate for root installation folder. The cgeo folder will ultimately consist of two folders, eclipse (that contains a whole eclipse installation) and git (that contains some git repository clones). Use Next and Finish to start the download of necessary Eclipse plugins and the cloning of the repositories.
  • In eclipse, the project will be uncompilable until you have copied the files keys.xml from main/templates to main/res/values (you need to do this because eclipse fails to create the file automatically from private.properties as Android Studio do). You have to change all values starting with @ and ending with @ (inclusive) with respective keys. If a key is missing, remove the respective value (together with the leading and trailing @).

Android Studio (or IntelliJ IDEA)

  • Install Android Studio from https://developer.android.com/sdk/index.html
  • On first start, choose to clone a project from version control, and choose github afterwards. Supply your credentials.
  • Android Studio should detect that gradle is used for building cgeo. If it complains that this is not a gradle project, then close the project. Choose "Import project" and select the build.gradle or settings.gradle in the root directory of the git repository.
  • c:geo uses Checkstyle to verify that coding standards are followed throughout the project. To see violations directly in Android Studio you need to install the CheckStyle-IDEA Plugin and configure the checkstyle.xml file available in the project root directory.



  • Android SDK (latest version) including Google APIs V23, Google repository and Android support repository.
  • If you use Microsoft Windows, Google USB Driver to install the application on the smartphone.
  • You need to provide several API keys for compiling the app. See next section for details.

API keys

Copy main/templates/keys.xml to main/res/values/. Then edit main/res/values/keys.xml and insert several keys (see comments in the file). Most important is the Google Maps API v1 key. You can leave it empty, but then Google Maps doesn't work. Google doesn't hand out new keys for Google Maps v1, you have to use an existing one.

Request your personal API key for the various OpenCaching sites we support. If you leave these blank, then those networks will remain disabled.

Building with gradle

Run gradlew from the root directory of the git repository. That will install the necessary build framework and display how to build cgeo. gradlew assembleBasicDebug might be a good start.


In Eclipse, create a Debug Configuration by selecting the cgeo application (inside the cgeo) folder and press F11. Then choose to run as Android Application.


The Test classes can be found in the project test. Test classes should be located in the same package as the class under test. Every class can be run with Run '<class name>' or debugged with Debug '<class name>') as an Android JUnit Test. To run all tests use the same Run 'Tests in <package name>' menu item from the context menu of a package in the test project.

For tests to run successfully you need to configure c:geo on the emulator that runs the test with a valid geocaching.com account. In order for all tests to be successfull the account needs to be a premium member.

Tests may also be launched from command line. Use gradlew assembleBasicDebug from the root directory of the git repository.


c:geo is distributed under Apache License, Version 2.0.