2015-10-17 14 views
24

Ich habe das FB SDK über Gradle in meine Android App integriert, um Ereignisse einzuloggen und zu verfolgen. Log-in funktioniert gut, aber die logcat hält mich zeigt eine Ausnahme alle 15 Sekunden, wenn ich versuchen, eine App Ereignis zu protokollieren:Facebook SDK 4.7.0 Logs ClassNotFoundException für AppEventsLogger

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

Es in PersistedEvents' readAndClearStore() method

geworfen wird hier mein Code, um das Ereignis für die Anmeldung :

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

ich meine com.facebook.a.b wie ein proguard Problem zu mir aussieht. Aber in den FB SDK-Dokumenten geben sie eindeutig an, dass Sie keine Progard-Regeln eingeben müssen, damit es funktioniert. Dieser Fehler zeigt sich auch, wenn ich meine App nicht verkleinere und auch wenn ich das SDK von Github herunterlade und es als Modul einfüge.

+0

kommen diese Protokolle von einer Freigabe-App? Oder ist es Debug? – user2511882

+0

Aber funktioniert es, wenn Sie Progress für die FB SDK entkommen? '-halten Klasse com.facebook. ** { *; } ' – Slartibartfast

+0

Wo geben Sie die Minimierungsoption an? Wie hast du es deaktiviert? Anscheinend funktioniert es nicht. Die fehlende Klasse wird von AppEventsLogger verwendet, wenn sie versucht, Ereignisse (falls vorhanden) alle 15 Sekunden zu protokollieren. –

Antwort

1

ich habe ein ähnliches Problem vor ein paar Tagen mit dem Logger im 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 

Und in ihrer documentation sagte sie Folgendes:

Sie müssen keine zusätzlichen Schritte ausführen, um ProGuard für das Facebook Android SDK zu verwenden. Anweisungen zu Proguard finden Sie auf der Android Tools-Projektwebsite unter ProGuard ausführen.

Nach einem Blick, was verursacht wurde ich in der Umgebung der Freisetzung keine meiner Ereignisse nicht anmelden hinzugefügt, um die folgende Regel zu meiner proguard Datei und begann dann auf magische Weise gut funktioniert:

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

Wir haben bereits ein Ticket öffnen das Facebook-Entwickler-Team, um mehr Informationen dazu zu haben. https://developers.facebook.com/bugs/250752828645777/

0

Verwendung in gradle statt sdk: 4.11.0:

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

Ich bin auch mit fb sdk einzuloggen nicht in der Lage: 4.11.0 als diese Version von fb sdk nicht bietet eine Ausnahme von Facebook-Klasse . Mit der höheren Version von fb sdk ersetzen neue Klassen alte Klassen.

Auch in der neuen Version 23 ist ActionBaractivity so unbrauchbar, dass Sie AppCompatActivity verwenden müssen.