我是android studio的新手,我想在android-studio项目中使用jackson。 我找到了两个.jar文件,它们似乎正在寻找我想要的东西(“jackson-core-asl-1.8.5”和“jackson-mapper-asl-1.8.5”)。我已将依赖项包含在app build.graddle中,如下所示:
compile 'org.codehaus.jackson:jackson-core-asl:1.8.5'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.8.5'
当我简单地构建项目时,它可以工作,但是当我在android vm上运行它时,构建失败。
出了什么问题: 任务':app:transformResourcesWithMergeJavaResForDebug'的执行失败。 com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:在APK META-INF / NOTICE中复制的重复文件 File1:C:\ Users \ HAL9000 \ AndroidStudioProjects \ EpiAndroid \ EpiAndroid \ app \ libs \ jackson-core-asl-1.8.5.jar File2:C:\ Users \ HAL9000 \ AndroidStudioProjects \ EpiAndroid \ EpiAndroid \ app \ libs \ jackson-mapper-asl-1.8.5.jar File3:C:\ Users \ HAL9000.gradle \ _caches \ modules-2 \ files-2.1 \ org.codehaus.jackson \ jackson-core-asl \ 1.8.5 \ 713a5564acb9a5467521bbb53221ab8e1fe65039 \ jackson-core-asl-1.8.5.jar File4:C:\ Users \ HAL9000.gradle \ caches \ modules-2 \ files-2.1 \ org.codehaus.jackson \ jackson-mapper-asl \ 1.8.5 \ 56439095aa051521c5abb330235820c66886b5e5 \ jackson-mapper-asl-1.8.5.jar
然后我尝试添加:
packagingOptions {
exclude 'META-INF/NOTICE'
}
在app build.graddle文件中,但它也不起作用。
感谢您的帮助。
答案 0 :(得分:2)
我通过删除/ libs中的两个.jar找到了解决方案,删除了我的packagingOptions并改为编写:
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
最后我将其用于依赖项:
compile (
[group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.4.1'],
[group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.4.1'],
[group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.4.1']
)
我希望将来可以帮助某人。