Java Apollo Android客户端-无法访问类路径上生成的类
我已经成功地生成了Apollo类,并且可以在build目录中看到它们,但是它们在类路径中不可用。奇怪的是,生成的枚举可用,但类本身却不可用 运行Apollo的Github上提供的示例项目确实有效,但我看不出配置之间的区别 下面是mcveJava Apollo Android客户端-无法访问类路径上生成的类,java,android,android-studio,graphql,apollo-android,Java,Android,Android Studio,Graphql,Apollo Android,我已经成功地生成了Apollo类,并且可以在build目录中看到它们,但是它们在类路径中不可用。奇怪的是,生成的枚举可用,但类本身却不可用 运行Apollo的Github上提供的示例项目确实有效,但我看不出配置之间的区别 下面是mcve 现在,您有src/main/graphql/包含graphql文档。这意味着您的Java类将在没有Java包的情况下生成,这可能不是您想要的 相反,在src/main/graphql/下创建一个包树(例如,src/main/graphql/apollotest
现在,您有
src/main/graphql/
包含graphql文档。这意味着您的Java类将在没有Java包的情况下生成,这可能不是您想要的
相反,在
src/main/graphql/
下创建一个包树(例如,src/main/graphql/apollotest/mq/apollotest/api/
)。将GraphQL文档和schema.json移动到那里。清理项目后,您会发现您的Apollo生成的类在您选择的任何Java包中都是可用的(例如,apollotest.mq.apollotest.api
。以下是一个屏幕截图,可以更快地理解解决方案:
为什么要编辑或引用
生成/生成的源代码?我不是要编辑它,而是要访问生成的类。与导入类一样。你的app/build.gradle
没有将其编译为依赖项。我认为你不能在你的代码中导入插件(至少我从来没有尝试过)嗯,这看起来不对。build/generated/source/apollo/
中应该有包目录。您的src/main/graphql/
目录的内容是什么?如果它只是GraphQL文档文件,请为生成的代码创建一组与所需Java包相匹配的子目录,然后将GraphQL文件移到其中。@Commonware顺便说一句,我这样做了,但在我的项目中仍然看不到生成的.Java
文件。但我确实在build/generated/source/apollo/mypackage
目录中看到了它们。我仍然无法从想法中引用它们。有什么问题吗?@AdamArold:我不使用IDEA。不知何故,你需要教它build/generated/source/apollo/
在你的项目中包含源代码。我认为最好将它们复制到src/main/java
文件夹中,或者不复制?好的,当你更改GraphQL模式、GraphQL查询或升级apollo Android时,它们会重新生成。所以,IMHO,最好教导IDEA从生成的源目录中提取。否则,您将忘记再次手动复制它们。这是一个错误的图表,对我不起作用。Commonware所说的是创建类似于当前体系结构层次结构的子文件夹。为我工作