Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有相对输出路径的greenDAO模式生成;找不到i/o时失败_Android_Greendao - Fatal编程技术网

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

Android 具有相对输出路径的greenDAO模式生成;找不到i/o时失败,android,greendao,Android,Greendao,接下来,我已经能够创建一个可以编译和运行的应用程序模块,但是如果我向generateAll方法传递一个相对路径,它就会失败。如果我指定一个绝对路径,它可以正常工作。我的android studio项目由几个模块组成,结构如下 project_root,每个模块都有子目录 /道发生器 /应用程序 每个都有自己的src目录,我调用generateAll如下: new DaoGenerator().generateAll(schema, "../app/src");

接下来,我已经能够创建一个可以编译和运行的应用程序模块,但是如果我向generateAll方法传递一个相对路径,它就会失败。如果我指定一个绝对路径,它可以正常工作。我的android studio项目由几个模块组成,结构如下

project_root,每个模块都有子目录

/道发生器

/应用程序

每个都有自己的src目录,我调用generateAll如下:

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

这将导致io错误,表明该目录不存在。我已经将路径修改为许多合理的选择,并确认磁盘上存在这些路径,但仍然会出现错误。绝对路径工作得很好,所以我试图理解我遗漏了什么,以使它与相对路径一起工作。谢谢

参数
outDir
应与项目目录相关

例如,假设您的
MyDaoGenerator
类位于
projectA
下的
module1
中,并且您希望将DAO类生成为同一项目的单独
module2

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

src/main/java/在我的例子中,我不得不将包更改为这个

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

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

也许您可以检查运行配置

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

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

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

public static void main(String[] args) throws Exception
{
    ...
    new DaoGenerator().generateAll(schema, "."); // direct to working directory
}
这对我有用。希望能有所帮助


来源:

脚本运行正常;它决定了如何设置生成的源文件的输出路径,而被接受的答案就是这个路径。但这也是一个很酷的解决方案;没有考虑修改工作目录;谢谢所以基本上,只需将相对路径传递给脚本,而不是设置outDir;酷。谢谢