2015-10-17 37 views
24

Ho integrato l'SDK dell'FB nella mia app Android tramite Gradle per gli eventi di accesso e tracciamento. Log-in funziona bene, ma il logcat mi tiene mostrando un'eccezione ogni 15 secondi una volta provo a registrare un evento app:Registri di Facebook SDK 4.7.0 ClassNotFoundException per AppEventsLogger

D/com.facebook.appevents.AppEventsLogger: Got unexpected exception: java.lang.ClassNotFoundException: com.facebook.a.b 

E si butta in PersistedEvents' readAndClearStore() method

Ecco il mio codice per la registrazione dell'evento :

AppEventsLogger logger = AppEventsLogger.newLogger(this); 
    Bundle parameters = new Bundle(); 
    parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "EUR"); 
    parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product"); 
    parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, id); 

    logger.logEvent(AppEventsConstants.EVENT_NAME_VIEWED_CONTENT, 
      1.99, 
      parameters); 

intendo com.facebook.a.b si presenta come un problema di Proguard per me. Ma nei documenti dell'FB SDK affermano chiaramente che non è necessario inserire alcuna regola proguard per farlo funzionare. Questo errore mostra anche quando non minifico la mia app e anche se scarico il sdk da github e lo includo come modulo.

+0

questi log provengono da un'app di rilascio? O è il debug? – user2511882

+0

Ma funziona se si sfugge proguard per il fd sdk? '-keep class com.facebook. ** { *; } ' – Slartibartfast

+0

Dove stai specificando l'opzione di minificazione? Come l'hai disabilitato? Apparentemente non sta funzionando. La classe mancante viene utilizzata da AppEventsLogger quando tenta di registrare gli eventi (se presenti) ogni 15 secondi. –

risposta

1

Ho un problema simile pochi giorni fa con il registratore in Facebook SDK (v4.11.0):

D/com.facebook.a.a(PID): Got unexpected exception: java.io.WriteAbortedException: Read an exception; java.io.NotSerializableException: org.json.JSONObject 

E nella loro documentation hanno detto quanto segue:

Non è necessario eseguire ulteriori passaggi per utilizzare ProGuard per l'SDK Android di Facebook. Per istruzioni su Proguard, vedere Sito del progetto Strumenti Android, Esecuzione di ProGuard.

Dopo aver guardato che cosa stava causando di non registrare nessuno dei miei eventi in ambiente rilascio ho aggiunto la seguente regola al mio file Proguard e poi magicamente iniziato a lavorare bene:

-keep class com.facebook.** { *; } 

Abbiamo già aperto un biglietto per il team di sviluppatori di Facebook per avere maggiori informazioni a riguardo. https://developers.facebook.com/bugs/250752828645777/

0

Uso in Gradle invece di SDK: 4.11.0:

compile('com.facebook.android:facebook-android-sdk:3.23.0') { 
    exclude module: 'bolts-android' 
} 

Sono anche in grado di effettuare il login con fb sdk: 4.11.0 come questa versione di fb SDK non fornire un eccezione della classe di Facebook . Con la versione superiore di fb sdk, le nuove classi stanno sostituendo quelle vecchie.

Anche in nuova versione 23 su, ActionBaractivity sta svalutando quindi è necessario utilizzare AppCompatActivity.