在构建签名版本APK时,我收到以下错误:
.gradle/caches/transforms-2/files-2.1/532a317ccd54c8ae4f622faeb8b534a9/jetified-wordup-core-0.2.1-runtime.jar:de/codereddev/wordup/database/WordDao_Impl$5.class,
Type de.codereddev.wordup.database.WordDao_Impl$5 is defined multiple times:
/home/codered_dev/.gradle/caches/transforms-2/files-2.1/532a317ccd54c8ae4f622faeb8b534a9/jetified-wordup-core-0.2.1-runtime.jar:de/codereddev/wordup/database/WordDao_Impl$5.class,
/home/codered_dev/MySoundboardApp/app/build/intermediates/javac/release/classes/de/codereddev/wordup/database/WordDao_Impl$5.class这个Room DAO定义来自我自己创建的一个library。
查看.jar文件,我可以找到以下内容:

这只会在发布时发生。我仍然可以构建并运行debug,没有任何问题。
不幸的是,我找不到错误。希望这里的任何人都能给我一个提示。
我首先假设这可能是因为该库包含一个Room数据库的标准定义,而我使用该库的应用程序包含它自己的自定义定义,其中包含相同的DAO。因此,批注处理器可能会处理DAO两次。但是我不能正确地检查这个。
重要的是要知道:我也在使用Koin进行依赖注入。
发布于 2020-08-29 20:13:41
不幸的是,我不知道确切的原因,但我从库中删除了房间kaptCompiler,而只将它放在正在使用库的应用程序中,从而使库正常工作。
发布于 2021-04-26 13:05:55
如果相同的包被不同的模块使用,例如,库和使用该库的应用程序都使用org.foo.bar作为包,就会发生这种情况。如果使用不同的包,错误将消失。
发布于 2021-08-05 03:27:53
我解决了这个问题:
在我的lib-base中,我有一个WordDao(baseDatabase),
abstract fun dao(): WordDao但是在我的module-word(wordDatabase)中,也有一个
abstract fun dao(): WordDao因此,在删除module-word中的abstract fun dao(): WordDao之后,我解决了这个问题
https://stackoverflow.com/questions/63099092
复制相似问题