我正嘗試在我正在構建的應用程序中使用適用於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)
原來有一堆依賴缺失,番石榴是其中之一。謝謝! – user2163853