具有相对输出路径的greenDAO模式生成;未找到i / o失败

时间:2014-04-16 17:01:44

标签: android greendao

this tutorial之后,我已经能够创建一个可编译和运行的工作应用程序模块,但如果我将相对路径传递给generateAll方法则会失败。如果我指定一个绝对路径,它工作正常。我的android studio项目由几个模块组成,结构类似

project_root,包含每个模块的子目录

/ daogenerator

/应用

每个人都拥有自己的src目录,我正在调用generateAll:

new DaoGenerator().generateAll(schema,
                "../app/src");

导致io错误,表明该目录不存在。我已经修改了许多合理替代方案的路径,并确认路径存在于磁盘上,但仍然出现错误。绝对路径工作正常,所以我试图理解我错过了什么让它使用相对路径。谢谢。

3 个答案:

答案 0 :(得分:5)

outDir参数应该与项目目录相关。

例如,假设您的MyDaoGenerator课程位于module1下的projectA,并且您希望将DAO课程生成为同一<的单独module2 / em>项目......

projectA
    module1/
        src/main/java/com.my.package/MyDaoGenerator.java
    module2/
        src/main/java/      <-- target directory

... outDir参数为module2/src/main/java

答案 1 :(得分:2)

在我的情况下,我必须将包更改为

 new DaoGenerator().generateAll(schema, "app/src/main/java");

来自

new DaoGenerator().generateAll(schema, "../app/src/main/java");

答案 2 :(得分:1)

也许您可以检查运行配置。

如果您的dao生成器代码位于名为M.java的类中,则可以编辑它的运行配置:

enter image description here

然后你应该确保它指向正确的工作目录:

enter image description here

最后,我们可以生成dao代码:

public static void main(String[] args) throws Exception
{
    ...
    new DaoGenerator().generateAll(schema, "."); // direct to working directory
}

它对我有用。希望它有所帮助。

来源:this tutorial