2017-08-16 2 views
1

Ich habe versucht, Facebook Android SDK (4.25.0) in meine App integriert. Alles hat gut funktioniert, wenn ich Gradle im Android Studio verwendet habe.

es nicht, wenn ich mit meiner AOSP (Android Open-Source-Projekt) Quellcode integriert funktioniert. Es gibt keinen Kompilierungsfehler. aber wenn ich

FacebookSdk.sdkInitialize(this.getApplicationContext()); 
//if I didn't call this method, it gave me another exception said 
'The SDK has not been initialized, make sure to call 
    FacebookSdk.sdkInitialize() first.' 

nennen bekam ich unter Ausnahme:

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/facebook/R$style; 
at com.facebook.FacebookSdk.<clinit>(FacebookSdk.java:84) 

Meine mk-Datei wie folgt aussieht:

LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res 
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/v7/appcompat/res 
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/v7/gridlayout/res 
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/design/res 
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/v7/cardview/res 

LOCAL_STATIC_JAVA_AAR_LIBRARIES := facebook-android-sdk 

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \ 
     facebook-android-sdk:libs/facebook-android-sdk-4.25.1.aar \ 
     bolts-android:libs/bolts-android-1.4.0.jar 

Jeder Vorschlag? Danke im Voraus.

+0

Es zeigte an, woher die Ausnahme kam. – user3034559

Antwort

1

Ich betreibe auch in diesen Fehler die meiste Zeit ich 3rd-Party-Libs zu einem AOSP App Build hinzuzufügen. Was normalerweise funktioniert, ist folgendes:

1) "konvertieren" Sie Ihre .aar in ein .jar (extrahieren Sie es, benennen Sie die classes.jar in facebook-android-sdk-4.25.1.jar um, kopieren Sie den res Ordner irgendwo Sie verlinken zu können)

2) das folgende in der .mk Datei hinzufügen.

LOCAL_STATIC_JAVA_LIBRARIES += facebook-android 
... 
LOCAL_AAPT_FLAGS := --auto-add-overlay 
LOCAL_AAPT_FLAGS := --extra-packages com.facebook 
... 
LOCAL_RESOURCE_DIR += /path/to/facebook-android-sdk-RES/ 
... 
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += facebook-android:/path/to/the/facebook-android-sdk-4.25.1.jar 

3) fügen Sie alle dependcies zum Build (appcompat, Gridlayout, customtabs etc. Link zum Facebook -sdk, den du gepostet hast, zeigt sie.)


Ich bin nicht sicher, ob Sie den ersten Schritt überspringen können, da es von Ihrer Android-Version abhängt (Link to the commit). Ich bin auf älteren Versionen, in denen LOCAL_STATIC_JAVA_AAR_LIBRARIES nicht existiert (aber Sie erhalten nicht einen Fehler, wenn Sie ihn noch benutzen).

Aber Ihre Fehlermeldung Failed resolution of: Lcom/facebook/R$style zeigt mir, dass das ist auch der Fall für Sie.

0

fand ich eine andere Lösung für dieses Problem:

LOCAL_STATIC_JAVA_AAR_LIBRARIES := facebook-android-sdk 
LOCAL_AAPT_FLAGS :=\ 
     --auto-add-overlay \ 
     --extra-packages com.facebook 

Es arbeitete wie ein Charme.

Danke,

Verwandte Themen