2017-02-03 5 views
2

Ich habe das Facebook SDK installiert und habe keine Fehler, aber ich kann es nicht als Teil meines Android-Projekts exportieren. Ich erhalte die folgenden Fehler bei der Aktivierung von ProGuard:Android Facebook SDK Eclipse Proguard

Warning: com.facebook.applinks.FacebookAppLinkResolver$2: can't find referenced class bolts.Task$TaskCompletionSource 
Warning: com.facebook.applinks.FacebookAppLinkResolver$2: can't find referenced class bolts.AppLink$Target 
Warning: com.facebook.applinks.FacebookAppLinkResolver$2: can't find referenced class bolts.AppLink 
Warning: com.facebook.applinks.FacebookAppLinkResolver$2: can't find referenced class bolts.AppLink$Target 
Warning: com.facebook.messenger.MessengerUtils: can't find referenced class bolts.AppLinks 
Warning: com.facebook.messenger.MessengerUtils: can't find referenced class bolts.AppLinks 
    You should check if you need to specify additional program jars. 
Warning: there were 62 unresolved references to classes or interfaces. 
     You may need to specify additional library jars (using '-libraryjars'). 
java.io.IOException: Please correct the above warnings first. 
at proguard.Initializer.execute(Initializer.java:321) 
at proguard.ProGuard.initialize(ProGuard.java:211) 
at proguard.ProGuard.execute(ProGuard.java:86) 
at proguard.ProGuard.main(ProGuard.java:492) 

ich das unter meiner ProGuard-Datei hinzugefügt, aber ich bekomme immer noch den Fehler:

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

Wie soll ich ProGuard konfigurieren, dass die Facebook-SDK verwenden?

Antwort

0

ProGuard teilt Ihnen mit, dass das Facebook SDK Klassen im bolts-Paket referenziert, aber ProGuard kann diese Klassen nicht finden, weil Sie Bolts wahrscheinlich nicht in Ihre Anwendung aufnehmen.

Um dies zu beheben, können Sie entweder: durch das Hinzufügen der Zeile

-dontwarn bolts.** 

zum ProGuard Konfigurationsdatei

  1. Tells ProGuard die fehlende Abhängigkeit zu ignorieren. Dies sollte kein Problem verursachen, da das Facebook SDK intern erkennen kann, ob Schrauben vorhanden sind und nur versuchen, es in diesem Fall zu verwenden.

  2. Bolzen als Abhängigkeit Ihres Projekts hinzufügen, indem Sie diese Zeilen in Ihrer Gradle Datei setzen:

    dependencies { 
        compile 'com.parse.bolts:bolts-tasks:1.4.0' 
        compile 'com.parse.bolts:bolts-applinks:1.4.0' 
    } 
    

Option 1 wahrscheinlich die beste Wahl ist, wenn Sie tatsächlich Schrauben benötigen.

3

Ich verwende diese Einstellungen in meinem proguard-project.txt:

# Facebook Audience Network 
-keep class com.facebook.ads.** { *; } 
-keep class com.facebook.ads.internal.** { *; } 
-keep class com.google.ads.mediation.facebook.FacebookAdapter {*;} 
-keep class com.google.android.exoplayer.** {*;} 

-dontwarn com.facebook.ads.** 
-dontwarn com.google.android.exoplayer.** 
Verwandte Themen