安卓工作室在设置杰克逊Parser时遇到麻烦

时间:2016-03-10 07:06:43

标签: android android-studio jackson android-gradle

我无法将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 /缓存,也没有幸运。

我不知道这可能是什么。有什么建议吗?

2 个答案:

答案 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'
    }