在多模块Android应用中使用immutables.io注释处理器时,如果使用package-info.java
文件,则构建失败。
我设法在GitHub上构建一个最小的测试项目来重现这个问题: ImmutablesPackageInfoIssue
该项目由2个模块组成:
@Value.Immutable
用于AndroidIm.java
@Value.Immutable
JavaIm.java
所以基本上,在两个模块中使用immutables.io都可以正常工作
但是当我们添加package-info.java
文件(com.example package
模块中的app
)时,编译失败并显示以下错误:
com.android.build.api.transform.TransformException:
com.android.dex.DexException: Multiple dex files define Lcom/example/ImmutableJavaIm$1;
发生Dex错误,因为ImmutableJavaIm.java
生成了两次:
\build\generated\source\apt\main\com\example\ImmutableJavaIm.java
\build\generated\source\apt\debug\com\example\ImmutableJavaIm.java
已知的解决方法:
package-info.java
文件package-info.java
文件注意:我不能忽略该文件,因为它包含构建的重要注释:例如immutables-style configuration
为什么会发生这种情况或可能是什么原因的任何想法?