Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法合并索引:库具有相同的包名_Android_Gradle - Fatal编程技术网

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.

我只是在使用我创建的两个Android库时偶然发现了这个问题:

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
的某个地方设置了它<代码>构建配置在清单的
元素上的
属性标识的位置生成。好的,太好了!非常感谢。