2

I'm trying to build OSMdroid with this command:
>mvn clean install

The build fails and gives this error:

[ERROR] Failed to execute goal on project osmdroid-android: 
Could not resolve dependencies for project org.osmdroid:osmdroid-android:aar:4.4-SNAPSHOT: 
Failure to find android:android:jar:6.0_r1 in https://repo.maven.apache.org/maven2 
was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced

We are behind a firewall and the network people here have assured me that everything at https://repo1.maven.org/maven2/ is being allowed.

So perhaps what it is looking for is really not there. I'm not sure what android:android:jar:6.0_r1 is. If I browse to https://repo1.maven.org/maven2/, I don't see a directory named android

Any ideas?

Windows 7

Tried deleting contents of C:\Users\myusername\.m2\repository, but this had no effect.

The root of the problem seems to be that it is failing to download certain jars from the maven repository:

[WARNING] The POM for android.support:compatibility-v4:jar:23.1.0 is missing, no dependency information available
[WARNING] The POM for com.google.android.maps:maps:jar:23_r1 is missing, no dependency information available
[WARNING] The POM for com.google.android.gms:google-play-services:jar:27.0.0 is missing, no dependency information available
[WARNING] The POM for android:android:jar:6.0_r1 is missing, no dependency information available
Al Lelopath
  • 6,448
  • 13
  • 82
  • 139

2 Answers2

4

To directly answer your question, update the SDK, then run the Maven SDK deployer and it should build. Or just import it using Gradle + Android Studio

You probably want to go right to the source. https://github.com/osmdroid/osmdroid/wiki/How-to-build-OsmDroid-from-source

  • Install the Android SDK and update it Set a system environment variable for ANDROID_HOME, pointing to your Android SDK install location. Windows (My Computer, properties, advanced, environment variables...), Linux export ANDROID_HOME=(path to android sdk install)
  • Install Maven. http://maven.apache.org/download.html (you need at least version 3.2.1). You'll also want to add Maven to the system path. Windows set PATH=$PATH%;(path to maven/bin). Linux export PATH=$PATH:(path to maven/bin)
  • Checkout the osmdroid source from git to a local folder. (git clone https://github.com/osmdroid/osmdroid.git)
  • Download Maven Android SDK dependency using Maven Android SDK Deployer. Follow instructions to deploy android sdk package to local repository. (Suggest mvn install -fn)
  • From the OsmDroid check out location, run the following mvn clean install. You will need a device or emulator running.

Gradle has cache issues from time to time and wiping out the cache is the only solution that I've found. You'll find a hidden .gradle folder under your user home folder and another one whereever the checkout location is for osmdroid.

spaaarky21
  • 6,524
  • 7
  • 52
  • 65
spy
  • 3,199
  • 1
  • 18
  • 26
  • i just pushed a change which should help (when google updates and deletes old versions of libraries). give it another try – spy Nov 04 '15 at 12:20
  • Yay! Whatever you did fixed it.[INFO] BUILD SUCCESS [INFO] Total time: 01:48 min [INFO] Finished at: 2015-11-05T09:16:13-07:00 [INFO] Final Memory: 71M/198M – Al Lelopath Nov 05 '15 at 16:20
  • I'm still having [this problem](http://stackoverflow.com/posts/33417537/edit) building OSMDroid in Android Studio. Can you help there? – Al Lelopath Nov 05 '15 at 18:28
  • 1
    just import osmdroid in android studio. should just work. don't import the pom, use the gradle bits. Sometimes gradle is silly. delete the ~/.gradle folder and your check out folder /.gradle folder and try it again – spy Nov 06 '15 at 02:18
  • I'm not sure what you are suggesting to do. Strictly speaking, there are no ".gradle" folders, but there are "gradle" folders, `/osmdroid/` and underneath that in `/OpenStreetMapViewer/` and `/OSMMapTilePackager/`. Assuming these are the folders you speak of, I delete them and then do *File > New > Import Project* and I still get the "failed to find target" error. Also, I'm not clear on what you mean by "delete ... and your check out folder / .gradle folder". – Al Lelopath Nov 06 '15 at 15:57
  • Also, I'm not sure what how to *not* import the pom. I don't see it in the Android Studio project after the import, but I am doing nothing explicitly to import it or not import it. Sorry for all this hassle. – Al Lelopath Nov 06 '15 at 16:14
  • 1
    Gradle gets stupid from time to time and wiping out the cache is the only solution that I've found. You'll find a hidden .gradle folder under your user home folder and another one whereever the checkout location is for osmdroid. – spy Nov 07 '15 at 02:02
  • That worked! If you would go over to the question and put that as the answer, I'd appreciated it. – Al Lelopath Nov 09 '15 at 17:24
-1

Properties -> java build path -> jre -> Execution environment -> Environments button click -> Add External JARs button click -> your .jar path of jdk -> finish

  • I think you mean Properties of an Eclipse project. I am not using Eclipse to build, I am doing it from the command line. – Al Lelopath Nov 03 '15 at 21:40