2010-08-25 10 views
10

Ho appena scaricato l'SDK di facebook da http://github.com/facebook/facebook-android-sdk Lo spacchettamento da git e ho aperto Eclipse. Ho quindi creato un nuovo progetto utilizzando l'origine esistente e selezionato la directory di Facebook. Quindi il progetto sdk è apparso correttamente (credo). Quindi ho creato nuovamente un nuovo progetto utilizzando l'origine esistente e selezionato l'esempio "Semplice". È venuto fuori con errori. Sono entrato nelle proprietà e selezionato la sezione Percorso di costruzione e aggiunto il progetto SDK di Facebook e applicato. Tutti gli errori scompaiono. Ho quindi provato a eseguire l'esempio ma sto ottenendo un'eccezione sulla prima chiamata alla funzione SDK di Facebook! L'eccezione è NoClassDefFoundError. Sembra che in fase di esecuzione non riesca a trovare la classe dell'SDK. Come mai ? Eventuali suggerimenti ? Qualcuno ha eseguito con successo questo esempio? Qualsiasi aiuto sarebbe molto apprezzato.Android facebook SDK errore java.lang.NoClassDefFoundError

+1

per ora, ho trovato l'unica soluzione per integrare totalmente le classi sdk nel mio progetto. non è così carino – Fabien

+1

Sto usando Android Studio. Aggiungo semplicemente il sdk di Facebook nel mio file gradle di build. Come risolvere questo errore in Android Studio? –

risposta

12

Ho avuto il tuo stesso problema e c'era un suggerimento in un'altra discussione per esportare l'SDK di Facebook Android come un file jar e aggiungere quel file al tuo progetto.

Anche se alcune persone hanno detto che la soluzione precedente ha funzionato con loro, non ha funzionato con me!

L'unica cosa che ha funzionato con me è: far fronte all'SDK di Facebook Android sei classi nel mio progetto e questo ha risolto il mio problema.

Passi:

1- ho semplicemente copiato i seguenti 6 classi del SDK di Android nel mio progetto AsyncFacebookRunner.java DialogError.java Facebook.java FacebookError.java FbDialog.java Util.java

2- Ho anche copiato il file facebook_icon.png dalle cartelle disegnabili alle mie cartelle disegnabili.

3- Ho importato la mia classe R.java nella classe FbDialog.java copiata.

Il mio consiglio è di provare la soluzione jar prima (dato che è il modo pulito di essere uno sviluppatore), se non ha funzionato con voi, quindi provare la mia soluzione (dato che è un modo per risolvere il problema) .

Grazie e speriamo che risolva il tuo problema.

Mohamed.

+0

Sono stato in grado di esportare il file Jar, ma ho riscontrato problemi nei confronti dei file duplicati AndroidManifest.xml. Ho gestito semplicemente l'esportazione dell'intero jar (comprese le risorse) ma deselezionato l'AndroidManifest durante la creazione del jar per com_facebook_android. Spero che questo aiuti qualcuno. – Chrispix

+1

La tua soluzione è buona! Il problema è che ho un pacchetto irrilevante nel mio progetto "com.facebook.android". Sembra strano – Emerald214

22

Fare clic con il tasto destro del mouse sul progetto. Scegli Proprietà -> Android. Sotto Libreria fai clic sul pulsante Aggiungi ... e seleziona il percorso del Progetto SDK di Facebook.

3

Sono riuscito a superare questo errore effettuando una compilazione pulita sia per il progetto che per il progetto di libreria (di riferimento) di Facebook.

I passi:

su Eclipse:

1) Select Project -> Clean 
2) Select both your project and facebook sdk project 
3) select OK 
+0

Questa è la strada giusta da percorrere. Ho risolto questo problema pulendo il progetto sdk di Facebook. Il mio progetto ha rigenerato com.facebook.android.R e tutto è andato bene. Evita di copiare i file direttamente nel tuo progetto in quanto ciò renderà più difficile l'aggiornamento quando necessario. –

3

anch'io affrontato lo stesso problema. Sono stato in grado di superare questo problema inserendo la libreria SDK di Facebook oltre al mio progetto (al quale voglio collegare l'SDK di Facebook) all'interno dello stesso spazio di lavoro. Ora vai al tuo progetto-> tasto destro-> proprietà-> android-> scorri verso il basso-> aggiungi-> seleziona il percorso per Facebook SDK-> premi ok.

In questo modo è possibile collegare l'SDK di Facebook al progetto. Solo aggiungendo il jar di Facebook si verificherà un'eccezione in quanto non contiene tutte le classi.

0

Ho anche avuto questa eccezione e ho provato quasi tutto quello che ho trovato. Ma poi ho copiato il progetto sdk di Facebook nella mia cartella di lavoro e poi ho fatto il riferimento da lì nel mio progetto e ha funzionato.

Non so perché questo è accaduto, questo non aveva senso per me dato che stavo fornendo il percorso aggiungendo il riferimento ma comunque, ha risolto il problema.

0

Ho avuto lo stesso problema. Ho risolto semplicemente seguendo questi passaggi:

  1. Rimuovere tutti i progetti di esempio e il Facebook SDK da Eclipse
  2. Importa l'SDK e progetti di esempio di nuovo, ma questa volta, utilizzando i "progetti Copia nello spazio di lavoro" opzione controllato.
  3. Ricostruisci l'SDK e i progetti di esempio
  4. Funzionamento!
0

Prova a segnare le caselle di controllo in Proprietà -> Java Build Path -> Ordine e Esporta.

Ho avuto lo stesso problema con il UiLifecycleHelper, e checkig sia il Android Dipendenze e il Android-support-v4.jar ha funzionato perfettamente. Meglio fare una pulizia dopo.

-1

Il nuovo SDK di Facebook aveva già android.support.V4.jar.

E quando si crea una nuova applicazione Android, anche quella contiene uno.

Quindi quando si controlla la console, si ottiene un messaggio di errore denominato mancata corrispondenza JAR.

In tal caso gli immobili selezionare del progetto Android -> percorso Java Build ->

Selezionare la scheda Libreria -> Rimuovi android.support.V4.jar Selezionare Ordine e di esportazione e deselezionare -> librerie di riferimento (Android. support.V4.jar)

Questo risolverà il problema.

+1

Questo non ha nulla da vedere con questa domanda. –

0

Ho avuto problemi simili. Sto costruendo un mio progetto di lib (con attività) e il mio progetto principale usando questa libreria. Ho avuto questi problemi. Avevo aggiunto la lib sotto la sezione Proprietà del progetto/Android e in basso, come suggerito correttamente in precedenza, ma non era abbastanza (si noti che entrambi i progetti stavano compilando bene). Ho dovuto cambiare il progetto lib e utilizzare il percorso completo del layout:

setContentView(com.example.mylib.R.layout.activity_main1); 

Si noti che utilizzando solo R.layout non era sufficiente, anche se ho definito il:

import com.example.mylib.R; 

valido alternativa è tuttavia:

import com.example.mylib.R.layout; 
setContentView(layout.activity_main1); 

Utilizzo di Eclipse.

hth a qualcuno

0

scaricare bolts-android1.1.2 e mettere nella cartella \ libs.quindi apri le proprietà del progetto-> java Build Path-> scheda Progetto, Aggiungi Facebook SDK. (Le librerie SDK di Facebook devono essere allegate al progetto)

Problemi correlati