2010-08-25 77 views
10

我剛剛從http://github.com/facebook/facebook-android-sdk下載了Facebook SDK 我從git中解壓縮並打開Eclipse。然後我使用現有源創建了一個新項目並選擇了facebook目錄。所以SDK項目正確(我認爲)。然後我使用現有的源再次創建了一個新項目並選擇了「簡單」示例。 它出現了錯誤。我進入了屬性並選擇了構建路徑部分,並添加了Facebook SDK項目並進行了應用。所有的錯誤消失。 然後我嘗試運行該示例,但即時通訊在第一次調用Facebook SDK函數時遇到異常!異常是NoClassDefFoundError。它似乎在運行時無法找到SDK的類。怎麼來的 ?有什麼建議麼 ?有人成功運行這個例子嗎?任何幫助將不勝感激。Android的facebook SDK做錯誤java.lang.NoClassDefFoundError

+1

現在,我發現唯一的解決方案,完全集成在我的項目sdk類。那不太好。 – Fabien 2010-08-25 09:46:52

+1

我正在使用android studio。我只是在我的build gradle文件中添加facebook sdk。如何在android studio中解決這個錯誤? – 2015-05-23 12:07:32

回答

12

我有你的同樣的問題,並在另一個問題的線程有一個建議作爲一個jar文件導出Android Facebook SDK並將該文件添加到您的項目。

雖然有人說以前的解決方案與他們合作,但它並沒有與我一起工作!

唯一與我合作的是:將Android Facebook SDK六個類應用到我的項目中,並解決了我的問題。

步驟:

1 - 我簡單複製從Android SDK中的以下6類到我的項目 AsyncFacebookRunner.java DialogError.java Facebook.java FacebookError.java FbDialog.java Util.java

2-我也已將facebook_icon.png文件從可繪製文件夾複製到我的可繪製文件夾中。

3我在複製的FbDialog.java類中導入了我的R.java類。

我的建議是首先嚐試jar解決方案(因爲它是成爲開發人員的簡單方式),如果它不適合你,那麼試試我的解決方案(因爲它是一種解決問題的方法) 。

感謝並希望它能解決您的問題。

穆罕默德。

+0

我能夠導出Jar文件,但我遇到了抱怨AndroidManifest.xml文件重複的問題。我管理的只是導出整個jar(包括資源),但在爲com_facebook_android創建jar時取消選擇了AndroidManifest。希望這可以幫助某人。 – Chrispix 2011-11-28 04:54:02

+1

您的解決方案很好!問題是我在我的項目「com.facebook.android」中有一個無關緊要的包。它看起來很奇怪。 – Emerald214 2012-07-11 12:47:45

22

右鍵單擊該項目。選擇屬性 - > Android。在庫下單擊添加...按鈕並選擇Facebook SDK項目的路徑。

3

我設法克服這個錯誤,爲我的項目和Facebook庫(引用)項目做一個乾淨的構建。

步驟:

基於Eclipse:

1) Select Project -> Clean 
2) Select both your project and facebook sdk project 
3) select OK 
+0

這是正確的路要走。我通過清理facebook sdk項目解決了這個問題。我的項目重新生成了com.facebook.android.R,一切都很順利。避免直接在項目中複製文件,因爲這會使您在需要時更新更難。 – 2012-12-03 12:58:46

3

我也面臨着同樣的問題。通過將Facebook SDK庫以及我的項目(我想鏈接Facebook SDK)放在同一個工作區中,我能夠解決這個問題。現在進入你的項目 - >右鍵 - >屬性 - > android-> scoll down-> add->選擇facebook SDK的路徑 - >按下ok。

通過這種方式,您可以將Facebook SDK鏈接到您的項目。只添加Facebook jar會導致一個異常,因爲它不包含所有的類。

0

我也有這個例外,並嘗試幾乎所有我發現。但後來我將Facebook的sdk項目複製到我的工作區文件夾,然後從我的項目中引用它,它工作。

不知道爲什麼發生這種情況,這對我來說沒有意義,因爲我在添加引用時提供了路徑,但無論如何,它解決了這個問題。

0

我有這個相同的問題。我解決它只是通過以下步驟:

  1. 刪除所有的樣本項目,並從Eclipse的
  2. 導入SDK,並再次樣本項目,但此時的Facebook SDK,使用「複製項目到工作空間」選項檢查。
  3. 重建SDK和示例項目
  4. 工作!
0

嘗試標記複選框屬性 - > Java構建路徑 - >訂單和導出

我有同樣的問題與UiLifecycleHelper,並checkig兩個Android的依賴Android的支持,v4.jar完美。在此之後更好地運行清理。

-1

新的facebook SDK已經有了android.support.V4.jar。

而當你創建一個新的android應用程序,甚至包含一個。

因此,當您檢查控制檯時,會收到稱爲JAR不匹配的錯誤消息。

在Android項目的這種情況下,選擇屬性 - > Java構建路徑 - >

選擇庫選項卡 - >刪除android.support.V4.jar 選擇訂單和出口,並取消 - >參考圖書館(機器人。 support4.V4.jar)

這將解決問題。

+1

這個問題沒有什麼可看的。 – 2014-12-12 12:34:23

0

我有類似的問題。我正在使用這個庫構建一個我的lib項目(包含活動)和我的主項目。我有這些問題。我已經在項目屬性/ Android部分和底部添加了lib,正如之前所建議的,但這還不夠(注意兩個項目都編譯好)。我不得不改變的lib項目和使用的完整路徑佈局爲:

setContentView(com.example.mylib.R.layout.activity_main1); 

注意,使用剛剛R.layout是不夠的,雖然我已經定義了:

import com.example.mylib.R; 

有效但是替代方案是:

import com.example.mylib.R.layout; 
setContentView(layout.activity_main1); 

使用Eclipse。

HTH給別人

0

下載bolts-android1.1.2並投入\ libs文件夾。然後打開項目屬性 - > Java Build Path-> Project選項卡,添加Facebook SDK。 (Facebook的SDK庫必須附帶項目)