I am creating a simple Android project in eclipse that uses google-api-java-client . I am trying to follow this tutorial in order to run it and run it. I was looking for SO to answer the question of how to add JAR to an Android project in Eclipse. Most of them recommend adding JARs to the lib/ folder in an Android project, and then adding these JARs to the project build path. I have done these two things. The project compiles perfectly (in any case, Eclipse does not complain about any errors). But when I run the Android application in my emulator, I get a ClassDefNotFoundError whenever I try to instantiate any class in the google-api-java-client JAR. for instance
new com.google.api.client.http.apache.ApacheHttpTransport();
Raises a ClassDefNotFoundError .
Here is the code that causes the error:
package com.mycom.android; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; public class SearchRunner implements OnClickListener { private static final String API_KEY = "AIzaSyA1Mg3xWXfoov4HdPUzYY2NwTxuvCev1-E"; private static final String PLACES_SEARCH_URL = ""; @Override public void onClick(View v) { EditText editText = (EditText) v; String searchText = editText.getText().toString(); runSearch(searchText); } protected void runSearch(String searchText) { new com.google.api.client.http.apache.ApacheHttpTransport(); } }
Here is a more complete output from Eclipse LogCat:
12-21 15:42:11.402: E/dalvikvm(3412): Could not find class 'com.google.api.client.http.apache.ApacheHttpTransport', referenced from method com.mycom.android.SearchRunner.runSearch 12-21 15:42:11.402: W/dalvikvm(3412): VFY: unable to resolve new-instance 70 (Lcom/google/api/client/http/apache/ApacheHttpTransport;) in Lcom/mycom/android/SearchRunner; 12-21 15:42:11.402: D/dalvikvm(3412): VFY: replacing opcode 0x22 at 0x0000 12-21 15:42:11.402: D/dalvikvm(3412): DexOpt: unable to opt direct call 0x00ca at 0x02 in Lcom/mycom/android/SearchRunner;.runSearch 12-21 15:42:11.682: I/MapActivity(3412): Handling network change notification:CONNECTED 12-21 15:42:11.682: E/MapActivity(3412): Couldn't get connection factory client 12-21 15:42:11.791: D/gralloc_goldfish(3412): Emulator without GPU emulation detected. 12-21 15:42:12.532: D/dalvikvm(3412): GC_CONCURRENT freed 102K, 3% free 10520K/10823K, paused 5ms+7ms 12-21 15:42:18.422: D/AndroidRuntime(3412): Shutting down VM 12-21 15:42:18.422: W/dalvikvm(3412): threadid=1: thread exiting with uncaught exception (group=0x409951f8) 12-21 15:42:18.482: E/AndroidRuntime(3412): FATAL EXCEPTION: main 12-21 15:42:18.482: E/AndroidRuntime(3412): java.lang.NoClassDefFoundError: com.google.api.client.http.apache.ApacheHttpTransport 12-21 15:42:18.482: E/AndroidRuntime(3412): at com.mycom.android.SearchRunner.runSearch(SearchRunner.java:20)
source share