android studio创建的.jar文件中的重复资源

时间:2016-03-08 10:41:57

标签: android android-studio gradle jar assets

我有一个android studio项目,该项目有一个应用程序模块和一个库模块。应用程序模块只是库模块的演示。图书馆模块依赖于第三方,为了简单起见,我们将其称为external.jar

Android studio可以成功构建库模块,生成名为classes.jar的库。

我注意到android studio还将资源从external.jar复制到classes.jar以及.class文件。当我尝试从应用程序模块构建apk时出现问题,因为应用程序模块依赖于external.jar,android studio拒绝组装最终的apk由于重复资产,并显示以下错误消息:     错误:任务执行失败':app:transformResourcesWithMergeJavaResForDebug'。

  

com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:在APK assets / ap1.data中复制的重复文件       File1:/Users/skyrim/android/Demo/app/libs/classes.jar       File2:/Users/skyrim/android/Demo/app/libs/external.jar

我必须以二进制形式向第三方发布库模块,他们也可以使用classes.jarexternal.jar,因此必须排除不必要的资产。

以下是我的图书馆模块build.gradle

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.2.0'
}

如何阻止android studio将资源从external.jar复制到classes.jar?当然,我可以简单地解压缩classes.jar并移动不必要的资产并重新压缩它,但我更喜欢一些不太讨厌的解决方案。

我是Android开发和gradle构建系统的新手,欢迎任何建议。

0 个答案:

没有答案