2013-04-14 30 views
0

我正嘗試在我正在構建的應用程序中使用適用於Android的Factual驅動程序。我已經安裝了他們的驅動程序,將我的應用程序中的libs文件夾中的.jar文件從here中刪除。我基本上只是從here採取了演示代碼,並將其放入我自己的活動中,根據需要進行修改以最初使其工作。NoClassDefFoundError - 使用Factual Android驅動程序進行基本數據庫調用

當我運行的活動,我得到一個NoClassDefFoundError的指向行,我首先實例事實,像這樣:

protected Factual factual = new Factual("KEY", "SECRET"); 

我不得不做出一個改變代碼,以便它將在Eclipse中被接受。這種變化是在下面的FactualRetrievalTask​​類:

public class FactualRetrievalTask extends AsyncTask<Query, Integer, List<ReadResponse>> { 
    @Override 
    protected List<ReadResponse> doInBackground(Query... params) { 
     List<ReadResponse> results = new ArrayList<ReadResponse>(); //changed from Lists.newArrayList(); 
     for (Query q : params) { 
      results.add(factual.fetch("restaurants-us", q)); 
     } 
     return results; 
    } 

List<ReadResponse> results = new ArrayList<ReadResponse>();List<ReadResponse> results = Lists.newArrayList();,但是這是給我一個錯誤,說:「名單無法解析」。做一點研究,我確定我可以改變它現在的狀況。

但是,當我運行時,我得到NoClassDefFoundError,它指向com.google.common.collect.Lists。我有一種感覺,我所做的這種改變可能是造成這種情況的原因,但我不確定如何繼續並解決它。任何幫助將不勝感激。下面相關的日誌:

04-14 17:06:01.209: E/AndroidRuntime(11688): FATAL EXCEPTION: main 
04-14 17:06:01.209: E/AndroidRuntime(11688): java.lang.NoClassDefFoundError: com.google.common.collect.Lists 
04-14 17:06:01.209: E/AndroidRuntime(11688): at com.factual.driver.Factual.<init>(Factual.java:46) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at com.factual.driver.Factual.<init>(Factual.java:57) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at com.example.blobtag2.PlaceActivity.<init>(PlaceActivity.java:64) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at java.lang.Class.newInstanceImpl(Native Method) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at java.lang.Class.newInstance(Class.java:1409) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at android.app.Instrumentation.newActivity(Instrumentation.java:1040) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1757) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1873) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at android.app.ActivityThread.access$1500(ActivityThread.java:135) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at android.os.Looper.loop(Looper.java:150) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at android.app.ActivityThread.main(ActivityThread.java:4358) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at java.lang.reflect.Method.invokeNative(Native Method) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at java.lang.reflect.Method.invoke(Method.java:507) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 
04-14 17:06:01.209: E/AndroidRuntime(11688): at dalvik.system.NativeStart.main(Native Method) 

回答

1

聽起來像是你需要包括Google's guava

java.lang.NoClassDefFoundError: com.google.common.collect.Lists 
+0

原來有一堆依賴缺失,番石榴是其中之一。謝謝! – user2163853

相關問題