greenDAO:未找到 ftl 模板

greenDAO: ftl-templates not found

我正在为 Android 使用 greenDAO,我想编辑 greenDAO 生成器,因为它会覆盖 @SerializedName,每次我更改数据库中的内容时我都需要 GSON。

所以我通过文件 -> 新建 -> 导入模块将 https://github.com/greenrobot/greenDAO 中的 greenDAO 添加到我的 Android Studio 项目中...并选择了 GreenDaoGenerator 模块。

接下来,我构建了我的 java 模块来生成 greenDAO 数据库,该数据库使用 GreenDaoGenerator-module 作为依赖项,但我得到一个异常,即找不到模板 dao.ftl。

有人可以帮助我吗?我是 Android 的新手,不检查为什么找不到文件。

Exception in thread "main" java.io.FileNotFoundException: Template "dao.ftl" not found.
at freemarker.template.Configuration.getTemplate(Configuration.java:742)
at freemarker.template.Configuration.getTemplate(Configuration.java:665)
at de.greenrobot.daogenerator.DaoGenerator.<init>(DaoGenerator.java:65)
at com.example.GreenDaoCreater.main(GreenDaoCreater.java:39)

编辑: 这是项目结构的屏幕截图。希望对你有帮助。

问题是模板文件的路径发生了变化。虽然我不确定如何设置相对路径,但这里有一个可行的 hack。打开DaoGenerator.java。在构造函数中,替换

config.setClassForTemplateLoading(this.getClass(), "/");

config.setDirectoryForTemplateLoading(new File("<your absolute path to templates>"));

您需要找到实际模板的存储位置。对我来说,它们在 /DaoGenerator/src-template/ 目录中。

我最近将 GreenDAO 重新添加到我的项目中,当我尝试构建它时出现此错误。

TemplateNotFoundException: Template not found for name "dao.ftl".

我的代码和模板目录与上次 运行 GreenDAO 相比没有变化。

只需重新启动 Android Studio 即可解决我的错误。我还没有调查发现为什么会这样。