错误:构建项目时已经存在程序类型

时间:2019-01-02 11:48:27

标签: android android-gradle android-library facebook-conceal

我正在使用我创建的“ aar”库。 在我的项目和库中,都有一个Conceal库的依赖实现(每个库都来自其自己的lib文件夹)。

在导入库并使用ProGuard模糊处理后生成项目时,出现以下错误消息:

Error: Program type already present: com.facebook.crypto.cipher.NativeGCMCipher

如何解决此问题?

4 个答案:

答案 0 :(得分:0)

此错误表示您正在导入已经在项目中导入的依赖项。

解决方案:-删除或排除此依赖项

例如:-

compile ('com.github.ganfra:material-spinner:1.1.1'){
    exclude group: 'com.nineoldandroids'
  }

答案 1 :(得分:0)

根据mavenCentral(),这是软件包名称(可以代替.jar使用):

// https://mvnrepository.com/artifact/com.facebook.conceal/conceal
implementation "com.facebook.conceal:conceal:2.0.2"

因此,排除项应如下所示:

implementation( project(":libraryproject") ) {
    exclude group: "com.facebook.conceal"
}

答案 2 :(得分:0)

据我所知,该错误意味着我导入了已经在项目中导入的依赖项(一次在项目中,一次在库中)。 @Mayur Dabhi和@Martin Zeitler的建议解决方案具有正确的方法,但不幸的是,我无法使exclude命令正常工作。

最后,在@Martin Zeitler的帮助下,我替换了:

implementation files('libs/conceal_android.jar')
implementation files('libs/libconceal.jar')

具有:

implementation "com.facebook.conceal:conceal:2.0.2"

表示我从“ lib”文件夹中删除了“隐藏” jar文件并导入了依赖。之后,错误消息消失了,我设法建立了项目。

感谢所有试图帮助您的人:)

答案 3 :(得分:-1)

将此添加到您的gradle.properties文件中:

android.useAndroidX=true android.enableJetifier=true

它将自动解决库中依赖项中可能存在的android.support/androidx冲突。