Android 无法合并索引:库具有相同的包名
我只是在使用我创建的两个Android库时偶然发现了这个问题:Android 无法合并索引:库具有相同的包名,android,gradle,Android,Gradle,我只是在使用我创建的两个Android库时偶然发现了这个问题: implementation 'me.aflak.libraries:freesmsapi:1.0' implementation 'me.aflak.libraries:fingerprint:2.5.2' 我得到以下错误: 错误:任务的执行失败 “:app:transformDexArchiveWithExternalLibsDexMergerForDebug”。 java.lang.RuntimeException:com.
implementation 'me.aflak.libraries:freesmsapi:1.0'
implementation 'me.aflak.libraries:fingerprint:2.5.2'
我得到以下错误:
错误:任务的执行失败
“:app:transformDexArchiveWithExternalLibsDexMergerForDebug”。
java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex
如果我使用stacktrace选项运行构建,我将获得以下附加信息:
多个dex文件定义Lme/aflak/libraries/BuildConfig
所以我觉得这是因为这两个库具有相同的包名。但是,为什么谷歌的一些库(例如)具有相同的包名,并且一切正常
您知道如何修复库,以便在同一项目中包含多个库吗?或者如何使用gradle修复此特定错误?
谢谢
另外,我已经尝试了multiDexEnabled true
,但在我的情况下它不起作用
所以我觉得这是因为这两个库有相同的包名
你说得对。字面原因是同一Java包中的两个BuildConfig
类。这源于具有相同的包名
但是,谷歌的一些库(如Firebase)如何拥有相同的软件包名称,并且一切正常
它们可能没有相同的包名(在清单的根
元素中定义为package
)。即使他们这样做了,他们也不会发布BuildConfig
您知道如何修复我的库,以便在同一个项目中包含多个库吗
最简单的解决方案是更改其中一个库的包名
所以我觉得这是因为这两个库有相同的包名
你说得对。字面原因是同一Java包中的两个BuildConfig
类。这源于具有相同的包名
但是,谷歌的一些库(如Firebase)如何拥有相同的软件包名称,并且一切正常
它们可能没有相同的包名(在清单的根
元素中定义为package
)。即使他们这样做了,他们也不会发布BuildConfig
您知道如何修复我的库,以便在同一个项目中包含多个库吗
最简单的解决方案是更改其中一个库的包名。感谢您的快速回复!如果我重命名其中一个库的包名,这是否意味着我必须以以下方式将其包括在内
implementation'me.aflak.libraries\u重命名:fingerprint:2.5.2'
?因为我想保留相同的命名法。@OmarAflak:不,因为那不是包名。这是一个工件组名,您已经在build.gradle
的某个地方设置了它<代码>构建配置在清单的
元素上的包
属性标识的位置生成。好的,太好了!非常感谢。谢谢你的快速回复!如果我重命名其中一个库的包名,这是否意味着我必须以以下方式将其包括在内implementation'me.aflak.libraries\u重命名:fingerprint:2.5.2'
?因为我想保留相同的命名法。@OmarAflak:不,因为那不是包名。这是一个工件组名,您已经在build.gradle
的某个地方设置了它<代码>构建配置在清单的
元素上的包
属性标识的位置生成。好的,太好了!非常感谢。