我无法将Jackson Parser依赖项添加到我的项目中。
目前我在build.gradle上使用这些代码行:
compile 'com.fasterxml.jackson.core:jackson-core:2.7.2'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.7.2'
compile 'com.fasterxml.jackson.core:jackson-databind:2.7.2'
我唯一需要的类是ObjectMapper,我知道它在databind包中。当我在gradle中添加这些行时,我按下同步,一切都正确。
问题是在模拟器上运行项目,此错误出现在Android Studio上的消息中:
错误:任务执行失败 ':应用程序:transformResourcesWithMergeJavaResForDebug'
com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:重复文件 复制在APK META-INF / NOTICE File1: C:\ Users \用户Igor.gradle \缓存\模块-2 \文件-2.1 \ com.fasterxml.jackson.core \杰克逊 - 数据绑定\ 2.7.2 \ 84ffa765dd258dbab8695963c41308b054f3a1cb \杰克逊 - 数据绑定-2.7.2.jar 文件2: C:\ Users \用户Igor.gradle \缓存\模块-2 \文件-2.1 \ com.fasterxml.jackson.core \杰克逊核\ 2.7.2 \ 8b8310381b690e317f5f0574e9b2dd7034778b4c \杰克逊 - 芯 - 2.7.2.jar
我试图只留下数据库库,但我没有幸运。同样的错误。
compile 'com.fasterxml.jackson.core:jackson-databind:2.7.2'
我尝试Build -> Clean Project
并删除.gradle /缓存,也没有幸运。
我不知道这可能是什么。有什么建议吗?
答案 0 :(得分:9)
添加
set BEA_JAVA_HOME=
set SUN_JAVA_HOME=C:\Program Files\Java\jdk1.7.0_67
if "%JAVA_VENDOR%"=="Oracle" (
set JAVA_HOME=%BEA_JAVA_HOME%
) else (
if "%JAVA_VENDOR%"=="Sun" (
set JAVA_HOME=%SUN_JAVA_HOME%
) else (
set JAVA_VENDOR=Sun
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_67
)
)
在android {
...
packagingOptions {
exclude 'META-INF/NOTICE' // It is not include NOTICE file
exclude 'META-INF/LICENSE' // It is not include LICENSE file
}
...
}
。
答案 1 :(得分:8)
为了完全解决问题,我添加了所有这些:
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}