当建立一个签名的释放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
文件,可以发现:
的数据
这只会发生在发布时,我仍然可以构建和运行调试,没有任何问题。
很不幸我找不到错误。希望这里的任何人能给我一些提示。
我首先假设这可能是由于库包含Room数据库的标准定义,而我使用库的应用程序包含自己的自定义定义,这些自定义定义包含相同的DAO。因此注解处理器可能会处理DAO两次。但我无法正确检查这一点。
如果需要知道的话:我也在使用Koin进行依赖注入。
3条答案
按热度按时间anauzrmj1#
不幸的是,我不知道确切的原因,但我得到了图书馆的工作,从图书馆中删除房间kaptalker,而不是只有它在应用程序中使用的图书馆。
vsikbqxv2#
如果不同的模块使用相同的包,例如库和使用库的应用程序都使用
org.foo.bar
作为包,就会发生这种情况。如果使用不同的包,错误就会消失。ipakzgxi3#
我解决了这个问题:
在我的
lib-base
中,我有一个WordDao
(baseDatabase),字符串
但是在我的
module-word
(wordDatabase)中,型
所以,在我删除
module-word
中的abstract fun dao(): WordDao
之后,我解决了这个问题