I have an API in the form of a JAR that I would like to use in my Android app. Not sure if it should be part of the project in Eclipse or kept separate and added to the project properties. This JAR also needs to be packaged with the application, so how is that done for Android apps?
Asked
Active
Viewed 1.7k times
2 Answers
21
As explained by this SO question:
- Your Project -> right click -> Import -> Archive File ->
yourjar.jar
- Your Project -> right click -> Properties -> Java Build Path -> Libraries -> Add Jar ->
yourjar.jar
You must add it as "external JAR" files, and set the "Order and Export" in your Eclipse project.
Update February 2012:
Pacerier mentions in the comment having an issue (ClassNotFound) even though he did declare the library.
He had:
However, the solution was simple:
Over 1 hour wasted. Man was I pissed!
Solution: make sure your JAR is compiled with 1.6 and not 1.7.
Argh
-
Even after doing that, I'm getting `java.lang.NoClassDefFoundError: asd.asd.TESTActivity$1` what is missing? – Pacerier Feb 15 '12 at 11:30
-
@Pacerier not sure about the uses-library: you have other alternatives (http://stackoverflow.com/questions/2230268/android-how-to-use-uses-library) – VonC Feb 15 '12 at 11:36
-
I've tried http://stackoverflow.com/a/1337933/632951 as well, looks like its working for everyone except for me. This is how my screen looks like: http://screenshoot.me/LIDzgI do you know what *may* have been the problem? – Pacerier Feb 15 '12 at 11:47
-
Over 1 hour wasted. Man was i pissed! Solution: make sure your JAR is compiled with 1.6 and not 1.7. argh – Pacerier Feb 15 '12 at 12:04
-
@Pacerier good catch. I have included it in the answer for more visibility. – VonC Feb 15 '12 at 12:47
-
Would it fail if the jar classes had been compiled using Java 5? – Pablo Francisco Pérez Hidalgo Apr 26 '14 at 16:14
-
@PabloFranciscoPérezHidalgo it can be problematic if your Java JDK Compiler Compliance level isn't set to Java 5: http://stackoverflow.com/a/1431554/6309 – VonC Apr 26 '14 at 16:17
-
@VonC +1 For your comment which could be an answer itself. – Pablo Francisco Pérez Hidalgo Apr 26 '14 at 16:27
2
Thanks to VonC for pointing me in the right direction. I had the same symptoms but for a different library (I needed to add org.apache.commons.codec.binary.Base64 for an Android project). The solution that worked for me was SLIGHTLY different. Herewith the steps that I followed:
- Download library from http://commons.apache.org/codec/download_codec.cgi
- Extract commons-codec-1.6.jar from the tarball and copy to a local folder
- In eclipse:
- right-click project name
- choose "Properties" from context menu
- on "Libraries" tab, select "Add External JARs..."
- navigate to and select commons-codec-1.6.jar from the location you extracted it to your local drive
- The jar file will now appear under "referenced Libraries" in your Package Explorer and you will be able to reference the library in your code.

Skilly
- 171
- 1
- 9