Impossibile compilare una semplice app Android di Google API con Eclipse
-
27-10-2019 - |
Domanda
Sto cercando di costruire un semplice cliente OAuth per Android in Eclipse.
Ho seguito le istruzioni da code.google.com/p/google-api-java-client/wiki/setup
Scaricato il file zip e aggiunto google-api-client-1.6.0-beta.jar
al mio percorso di costruzione in Eclipse. Tutte le 13 dipendenze ora vengono visualizzate sotto le librerie di riferimento come mostrato di seguito.
Il codice è semplice. Ho appena fatto le seguenti modifiche all'attività predefinita.
public class Testing1Activity extends Activity {
/** Called when the activity is first created. */
final String TAG = getClass().getName();
public static final String CLIENT_ID = "";
public static final String CLIENT_SECRET = "";
public static final String REDIRECT_URI = "";
public static final String SCOPE = "https://www.googleapis.com/auth/latitude.all.best";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Json s = new Json();
String authorizationUrl = new GoogleAuthorizationRequestUrl(CLIENT_ID, REDIRECT_URI, SCOPE)
.build();
}
}
Continuo a ricevere questo dannato errore. :(
W/dalvikvm( 591): Unable to resolve superclass of Lcom/google/api/client/googleapis/auth/oauth2/draft10/GoogleAuthorizationRequestUrl; (18)
W/dalvikvm( 591): Link of class 'Lcom/google/api/client/googleapis/auth/oauth2/draft10/GoogleAuthorizationRequestUrl;' failed
E/dalvikvm( 591): Could not find class 'com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAuthorizationRequestUrl', referenced from method com.rahul.Testing1Activity.onCreate
W/dalvikvm( 591): VFY: unable to resolve new-instance 37 (Lcom/google/api/client/googleapis/auth/oauth2/draft10/GoogleAuthorizationRequestUrl;) in Lcom/rahul/Testing1Activity;
D/dalvikvm( 591): VFY: replacing opcode 0x22 at 0x000d
D/dalvikvm( 591): VFY: dead code 0x000f-001c in Lcom/rahul/Testing1Activity;.onCreate (Landroid/os/Bundle;)V
D/AndroidRuntime( 591): Shutting down VM
W/dalvikvm( 591): threadid=1: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime( 591): FATAL EXCEPTION: main
E/AndroidRuntime( 591): java.lang.NoClassDefFoundError: com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAuthorizationRequestUrl
E/AndroidRuntime( 591): at com.rahul.Testing1Activity.onCreate(Testing1Activity.java:25)
Soluzione
Quindi alla fine l'ho capito da solo.
Sebbene Eclipse mostri tutte le librerie dipendenti sotto librerie di riferimento, non vengono aggiunti all'APK finale. Bisogna aggiungere esplicitamente ciascuno di essi al percorso di build uno per uno.
Anche l'aggiunta di tutte le LIB dipendenti da ZIP creerà conflitti poiché alcune di queste API fanno già parte del framework Android. Non hanno bisogno di essere aggiunti.
Altri suggerimenti
Invece di aggiungere direttamente il riferimento dalla diversa cartella, prova a creare la cartella LIB e posizionalo nella cartella dell'applicazione dell'area di lavoro e quindi prova a fare riferimento, verrà risolto. Ho rimosso il mio errore facendo lo stesso.