我正在使用我创建的“ aar”库。 在我的项目和库中,都有一个Conceal库的依赖实现(每个库都来自其自己的lib文件夹)。
在导入库并使用ProGuard模糊处理后生成项目时,出现以下错误消息:
Error: Program type already present: com.facebook.crypto.cipher.NativeGCMCipher
如何解决此问题?
答案 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冲突。