android - 生成签名 APK 错误 : java. util.zip.ZipException

标签 android apk build.gradle

我使用三星 A5 测试应用程序,该项目在我的手机上运行正常,但在其他手机上运行不正常。所以我想从我的项目中Generate signed APK。但是出现异常错误:

Error:Execution failed for task '::transformClassesWithDexForRelease'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/daimajia/androidanimations/library/BaseViewAnimator;

我用谷歌搜索了这个错误,这些代码删除了那个错误:

multiDexEnabled true

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/notice.txt'
}

但是现在还有一个异常(exception):

Error:Execution failed for task ':transformClassesWithJarMergingForRelease'.
 com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/daimajia/androidanimations/library/BaseViewAnimator.class

我认为这可能是因为我使用了库,但不知道如何处理它。以下是 build.gradle 中的所有库:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'

    //for compiling card view
    compile 'com.android.support:cardview-v7:23.0.0'
    compile 'com.android.support:recyclerview-v7:23.0.0'

    //for sticky header
    compile 'com.github.carlonzo.stikkyheader:core:0.0.3-SNAPSHOT'
    compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.melnykov:floatingactionbutton:1.0.7'

    compile 'com.ogaclejapan.smarttablayout:library:1.6.1@aar'

    compile 'com.ogaclejapan.smarttablayout:utils-v4:1.6.1@aar'

    compile 'me.drakeet.materialdialog:library:1.3.1'

    compile files('libs/volley.jar')

    compile 'com.daimajia.easing:library:1.0.1@aar'

    compile 'com.daimajia.androidanimations:library:1.1.3@aar'

    //Sweet Alert Dialog
    compile 'cn.pedant.sweetalert:library:1.3'

    compile 'org.apmem.tools:layouts:1.10@aar'

}

最佳答案

一些事情...

首先,我会删除您包含的大部分第 3 方库。例如,

//for sticky header
compile 'com.github.carlonzo.stikkyheader:core:0.0.3-SNAPSHOT'
compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.melnykov:floatingactionbutton:1.0.7'

所有这些都包含在 Design Support Library 中来自谷歌

从名字我觉得你也可以去掉

compile 'com.ogaclejapan.smarttablayout:library:1.6.1@aar'
compile 'com.ogaclejapan.smarttablayout:utils-v4:1.6.1@aar'

compile files('libs/volley.jar') 应替换为 compile 'com.android.volley:volley:1.0.0'

我也会删除

//Sweet Alert Dialog
compile 'cn.pedant.sweetalert:library:1.3'

compile 'org.apmem.tools:layouts:1.10@aar'

您所包含的许多项目已经有 2 年多没有开展了。 尝试使用 Google 的支持库。您将从设计支持库中获得其中的大部分内容。

最后一点。您收到 Dex 错误是因为应用程序包含所有这些库并传递了 64k method limit .我建议启用混淆器以删除未使用的代码并减少项目的方法数。

关于android - 生成签名 APK 错误 : java. util.zip.ZipException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39557729/

相关文章:

gradle - gradle构建始终在下载随机插件时失败

android - 当我在JSON解析器中添加数据对象时出错

android - APK文件无法在android浏览器中完全下载,但可以从我的同一网络服务器在PC上成功下载吗?

android - 新 Android Studio 中的 Apk 位置

android - APK文件在磁盘上不存在

android - 在自定义任务中执行android构建任务

java - Gradle无法识别Antlr插件

android - 是否可以在 Android 中为图像/图标使用字体

android - 开始阻止服务中的对话框

android - 在对象和数组中使用具有相同名称的 GSON 进行 JSON 解析