2017-08-16 94 views
1

我試圖將Facebook Android SDK(4.25.0)集成到我的應用程序中。如果我在Android Studio中使用Gradle構建,一切正常。

如果我與我的AOSP(Android開放源代碼項目)源代碼集成,它不起作用。沒有編譯錯誤。但是當我打電話

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.' 

我有以下異常:

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

我的MK文件看起來像:

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 

什麼建議嗎?提前致謝。

+0

它表明異常來自何處。 – user3034559

回答

1

我大部分時間都會遇到這個錯誤,我將第三方庫添加到AOSP應用程序構建中。通常的作用如下:

1)將你的.aar「轉換」爲一個.jar(解壓縮它,將classes.jar重命名爲facebook-android-sdk-4.25.1.jar,將res文件夾複製到某處您可以鏈接到)

2)以下內容添加到您的.mk文件:

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)添加所有dependcies給build(程序兼容性,網格佈局,customtabs等的鏈接的Facebook -sdk you posting shows。)


我不知道你是否可以跳過第一步,因爲它取決於你的Android版本(Link to the commit)。我在舊版本LOCAL_STATIC_JAVA_AAR_LIBRARIES不存在(但是如果你仍然使用它,你不會得到一個錯誤)。

但是,您的錯誤信息Failed resolution of: Lcom/facebook/R$style表明,這也是你的情況。

0

我發現這個問題的另一種解決方案:

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

它的工作就像一個魅力。

謝謝,

相關問題