1

我应该在我的 android 项目中使用 natty-master。但我无法导入它。我如何在没有 maven 的情况下使用 natty?我找到了这些代码,我添加了罐子,但它不起作用。

import java.util.Date;

import java.util.List;

import java.util.Map;

import com.joestelmach.natty.*;

public class natty {

public static void main(String[] args) {

    Parser parser = new Parser();

    List<DateGroup> groups = parser.parse("the day before next thursday");
    for(DateGroup group:groups)  {
    Date dates = group.getDates().get(0);           
    int line = group.getLine();
    int column = group.getPosition();
    String matchingValue = group.getText();
    String syntaxTree = group.getSyntaxTree().toStringTree();
        Map parseMap = group.getParseLocations();
    boolean isRecurreing = group.isRecurring();
    Date recursUntil = group.getRecursUntil();
       }
    }

}

4

1 回答 1

3

我为你调查了一下。
我假设您正在使用带有当前版本的 ADT 插件的 Eclipse。首先让我们确保您正确添加罐子:

  1. libs您必须在项目的根级别创建文件夹(与src,res等一起)。
  2. 将第 3 方 jar 复制到libs.
  3. 右键单击项目并执行刷新,ADT 将发现库并将它们添加为 Android 依赖项。

现在为图书馆。natty-07.jarMaven列出的所有依赖项是:

antlr-2.7.7.jar
antlr-runtime-3.2.jar
backport-util-concurrent-3.1.jar
commons-codec-1.5.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
ical4j-1.0.2.jar
stringtemplate-3.2.jar

是的,您必须将 2.3 MB 的依赖项复制到libs.
我不认为所有这些在运行时都是必需的,但我无法判断哪些是关键的。
使用 ProGuard 可能会缩小其中的一些,但那是另一回事了。

我使用 minSdkVersion="8" 和 targetSdkVersion="17" 创建了快速的脏应用程序。然后将您提供的示例代码放入 Activity 并根据输入运行它:"the day before next thursday"。结果,我得到了带有 date 的单组[Wed May 22 16:52:49 GMT 2013],这没关系,因为今天是 5 月 17 日星期五。


编辑 2013-06-02
基本代码: http:
//pastebin.com/XrF5k10M
完整解决方案:
https ://www.dropbox.com/sh/qk2cs51twrpobuz/YaFZWiG5jP/StackOverflow/16610375/NattyApp.zip

于 2013-05-17T17:28:49.377 回答