首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:在APK打包过程中重复文件

错误:在APK打包过程中重复文件
EN

Stack Overflow用户
提问于 2015-06-18 08:05:31
回答 3查看 3.1K关注 0票数 4

我试图在android上运行一个Android eclipse。

我在互联网上尝试了很多解决方案。

但还是出了点问题

代码语言:javascript
运行
复制
Error:duplicate files during packaging of APK /home/sam/pst-adnew/panstage/build/outputs/apk/panstage-debug-unaligned.apk
	Path in archive: lib/armeabi-v7a/libmp3lame.so
	Origin 1: /home/sam/pst-adnew/panstage/build/intermediates/exploded-aar/pst-adnew/panstage_local_library/unspecified/jni/armeabi-v7a/libmp3lame.so
	Origin 2: /home/sam/pst-adnew/panstage/build/intermediates/ndk/debug/lib/armeabi-v7a/libmp3lame.so
You can ignore those files in your build.gradle:
	android {
	  packagingOptions {
	    exclude 'lib/armeabi-v7a/libmp3lame.so'
	  }
	}
Error:Execution failed for task ':panstage:packageDebug'.
> Duplicate files copied in APK lib/armeabi-v7a/libmp3lame.so
  	File 1: /home/sam/pst-adnew/panstage/build/intermediates/exploded-aar/pst-adnew/panstage_local_library/unspecified/jni/armeabi-v7a/libmp3lame.so
  	File 2: /home/sam/pst-adnew/panstage/build/intermediates/exploded-aar/pst-adnew/panstage_local_library/unspecified/jni/armeabi-v7a/libmp3lame.so

我在NDK安卓工作室工作。

请帮帮我。

我也试过这个解决方案

代码语言:javascript
运行
复制
packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }

但它不再起作用了。请帮助我:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-18 08:12:17

PackagingOption部分中也包括exclude 'lib/armeabi-v7a/libmp3lame.so'

代码语言:javascript
运行
复制
packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
        exclude 'lib/armeabi-v7a/libmp3lame.so'

    }
票数 1
EN

Stack Overflow用户

发布于 2016-05-09 03:53:15

在重复库(*.so)文件的情况下,排除选项不会有帮助,因为我们不能完全排除本机二进制文件。在packagingOptions中还有一个选项。这是“挑选第一”。我们可以避免重复的文件错误,并包括编译器遇到的第一个错误。

代码语言:javascript
运行
复制
packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
        pickFirst 'lib/armeabi-v7a/libmp3lame.so'

    }
票数 12
EN

Stack Overflow用户

发布于 2017-10-25 18:00:39

我也有类似的问题,原因是一个模块在长gradle文件中包含了两次,而且很难被注意到。

代码语言:javascript
运行
复制
.
.
.
compile project(path: ':common', configuration: 'debug')
.
.
.
compile project(path: ':common')
.
.
.

因此,一旦它在调试文件夹中添加了文件,在发布文件夹中添加了第二次文件。

捕获后,我删除了第二行,因为我们需要调试版本中的所有内容。错误消失了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30909743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档