0

我正在尝试在我正在构建的应用程序中开始使用适用于 Android 的 Factual 驱动程序。我已经通过将 .jar 文件从这里放到我的应用程序的 libs 文件夹中来安装他们的驱动程序。我基本上只是从这里获取演示代码并将其放入我自己的活动中,并根据需要进行修改以使其最初工作。

当我运行活动时,我得到一个 NoClassDefFoundError 指向我第一次实例化 Factual 的行,如下所示:

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)
4

1 回答 1

1

听起来您需要包含Google 的 guava

 java.lang.NoClassDefFoundError: com.google.common.collect.Lists
于 2013-04-14T22:29:45.167 回答