在打包APK期间复制文件

Mor*_*lus 16 android jar gradle android-studio

我使用的是Android Studio,我在那里使用了几个库.

我有:

android-query-full.0.25.10.jar
gson-2.2.4-sources.jar
slide-menu.jar
Run Code Online (Sandbox Code Playgroud)

我在build.gradle文件中定义了编译整个libs目录,如下所示:

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
    compile fileTree(dir: 'libs', include: '*.jar')
}
Run Code Online (Sandbox Code Playgroud)

所有这些都很有效.

现在我想添加另一个库"PullToRefresh"我已经将ResSrc文件夹打包到一个jar文件中,其中包含来自eclipse的源代码(就像我使用SlideMenu.jar一样)并将新创建的jar作为库添加到我的项目旁边所有其他人.

当我尝试构建我的项目时,我从gradle中得到以下错误:

Gradle: : duplicate files during packaging of APK C:\Code\TestProject\Test\build\apk\Endilo-debug-unaligned.apk
Gradle: Execution failed for task ':Endilo:packageDebug'.
> Duplicate files copied in APK res/values/attrs.xml
    File 1: C:\Code\TestProject\Test\libs\PullToRefresh.jar
    File 2: C:\Code\TestProject\Test\libs\PullToRefresh.jar
Run Code Online (Sandbox Code Playgroud)

这是非常奇怪的,因为我从同一个jar文件中获取重复项.这里发生了什么!?

小智 -1

这发生在我身上。我从 eclipse adt 导出 jar 并得到同样的错误。我通过使用 WinRAR 打开 jar 文件并删除除两个文件夹之外的所有文件夹解决了这个问题:META-INF 和类的包文件夹,在我的例子中它是 com 文件夹。就我而言,发生这种情况是因为 jar 内的 AndroidManifest.xml 文件。在您的情况下,这是因为 res/values/attrs.xml 但可能存在其他冲突,并且该文件是第一个冲突。

我希望这有帮助。