2015-10-17 2 views
24

J'ai intégré le FB SDK dans mon application Android via Gradle pour les événements de connexion et de suivi. Se connecter fonctionne très bien, mais le logcat continue de me montrer une exception toutes les 15 secondes une fois que je tente de me connecter un événement de l'application:Facebook SDK 4.7.0 journaux ClassNotFoundException pour AppEventsLogger

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

Il est jeté dans PersistedEvents' readAndClearStore() method

Voici mon code pour enregistrer l'événement :

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); 

Je veux dire com.facebook.a.b ressemble à un problème de proguard pour moi. Mais dans les documents FK SDK, ils indiquent clairement que vous n'avez pas besoin d'entrer des règles proguard pour que cela fonctionne. Cette erreur indique également quand je ne minimise pas mon application et aussi si je télécharge le sdk de github et l'inclue en tant que module.

+0

Ces journaux proviennent-ils d'une application de version? Ou est-ce le débogage? – user2511882

+0

Mais cela fonctionne-t-il si vous échappez à proguard pour le fd sdk? '-keep class com.facebook. ** { *; } ' – Slartibartfast

+0

Où spécifiez-vous l'option de minimisation? Comment l'avez-vous désactivé? Apparemment, ça ne marche pas. La classe manquante est utilisée par AppEventsLogger lorsqu'elle tente d'enregistrer des événements (le cas échéant) toutes les 15 secondes. –

Répondre

1

i ont un problème similaire il y a quelques jours avec l'enregistreur dans le 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 

Et dans leur documentation ils ont dit ce qui suit:

Vous n'avez pas à effectuer d'étapes supplémentaires pour utiliser ProGuard pour le SDK Facebook Android. Pour obtenir des instructions sur Proguard, consultez le site du projet Android Tools, Exécution de ProGuard.

Après avoir regardé ce qui était à l'origine de ne pas se connecter l'un de mes événements dans l'environnement de libération i ajouté la règle suivante à mon dossier proguard puis par magie a commencé à travailler bien:

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

Nous avons déjà ouvrir un ticket pour l'équipe des développeurs facebook afin d'avoir plus d'informations à ce sujet. https://developers.facebook.com/bugs/250752828645777/

0

Utilisation dans gradle au lieu de sdk: 4.11.0:

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

Je suis pas capable de se connecter avec fb sdk: 4.11.0 que cette version de fb sdk ne fournit une exception de la classe Facebook . Avec la version supérieure de fb sdk, les nouvelles classes remplacent les anciennes.

Même dans la nouvelle version 23, ActionBaractivity est en cours de désinstallation et doit donc utiliser AppCompatActivity.