Question

What is the recommended Eclipse (4.2) configuration for building a Google Cloud Endpoints Android Client Project?

Running Google -> Generate Cloud Endpoint Client Library yields a /libs within my Server project that contains:
commons-logging-1.1.1.jar google-api-client-1.12.0-beta.jar
google-api-client-android-1.12.0-beta.jar
google-api-client-appengine-1.12.0-beta.jar
google-api-client-java6-1.12.0-beta.jar
google-http-client-1.12.0-beta.jar
google-http-client-android-1.12.0-beta.jar
google-http-client-appengine-1.12.0-beta.jar
google-http-client-gson-1.12.0-beta.jar
google-http-client-jackson-1.12.0-beta.jar
google-http-client-jackson2-1.12.0-beta.jar
google-oauth-client-1.12.0-beta.jar
google-oauth-client-appengine-1.12.0-beta.jar
google-oauth-client-java6-1.12.0-beta.jar
google-oauth-client-jetty-1.12.0-beta.jar
google-oauth-client-servlet-1.12.0-beta.jar
gson-2.1.jar
guava-jdk5-13.0.jar
httpclient-4.0.3.jar
httpcore-4.0.1.jar
jackson-core-2.0.5.jar
jackson-core-asl-1.9.9.jar
jdo2-api-2.3-eb.jar
jetty-6.1.26.jar
jetty-util-6.1.26.jar
jsr305-1.3.9.jar
transaction-api-1.1.jar
xpp3-1.1.4c.jar

Does my Client need to include all these .jar files? If I copy them all into the /libs folder of my Android Client Project and do Build Path -> Add, I get the errors:

Dx trouble processing "javax/xml/namespace/QName.class":

Ill-advised or mistaken usage of a core class (java.* or javax.*)
when not building a core library.

and

Dx trouble processing "javax/transaction/HeuristicCommitException.class"

So I need to manually remove xpp3-1.1.4c.jar and transaction-api-1.1.jar from my Client /libs for a clean build.

Is this the "standard" way of building a Client project? How can I determine what are the required .jar libraries for building on Android? Can I configure Eclipse to dynamically import only this subset into my Client?

If I update my Endpoint classes within my Server project in the future and re-run Generate Cloud Endpoint Client Library, do I only need to copy the generated source code under /com/google/api/services to my Client project?

Was it helpful?

Solution

You only need these jars in your Android project:

  • google-api-client-1.12.0-beta.jar
  • google-api-client-android-1.12.0-beta.jar
  • google-http-client-1.12.0-beta.jar
  • google-http-client-android-1.12.0-beta.jar
  • google-http-client-gson-1.12.0-beta.jar
  • google-oauth-client-1.12.0-beta.jar
  • gson-2.1.jar
  • guava-jdk5-13.0.jar
  • jsr305-1.3.9.jar

The other dependencies are included for running the library within other environments.

In general, the dependencies are fixed between runs of generating the client library. However, the generator will use the newest version of the client library, so if that's upgraded in the background, the dependencies might need to be upgraded as well.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top