Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use and package a JAR file with my Android app?

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?

like image 614
Eno Avatar asked Feb 23 '10 07:02

Eno


2 Answers

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.

eclipseexternallibrary2.png


Update February 2012:

Pacerier mentions in the comment having an issue (ClassNotFound) even though he did declare the library.
He had:

class not found

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

like image 122
VonC Avatar answered Oct 08 '22 07:10

VonC


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:

  1. Download library from http://commons.apache.org/codec/download_codec.cgi
  2. Extract commons-codec-1.6.jar from the tarball and copy to a local folder
  3. 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
  4. 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.
like image 31
Skilly Avatar answered Oct 08 '22 07:10

Skilly