生成签名的APK错误

时间:2016-10-06 12:14:00

标签: java eclipse android-studio

当我在模拟器中运行应用程序时,它可以工作,但是当我想生成签名的APK时,我收到以下错误消息:

  

[错误:任务执行失败   ':应用程序:transformClassesWithDexForRelease'。   > com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:   java.util.concurrent.ExecutionException:   com.android.dex.DexIndexOverflowException:方法ID不在[0,   0xffff]:65536]

此错误消息的含义是什么,有没有办法解决此问题?

Screenshot of error

1 个答案:

答案 0 :(得分:1)

DexIndexOverflowException:溢出意味着已达到限制。

您的dex文件大小已达到限制,即64K,因此您需要在项目follow the official link of docs

中实施Multidex支持

在build.gradle下面添加以启用multidex支持

defaultConfig {
    ...
    // Enabling multidex support.
    multiDexEnabled true
}

在清单应用程序代码中设置应用程序名称multidex支持

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

如果你有一个应用程序类,那么在super.onCreate

之前启用dex
MultiDex.install(getTargetContext());
super.onCreate(arguments);

一些技巧可能很方便:删除不需要的依赖项,文件并使用特定的Google Play依赖项(如gms等),而不是将其作为一个整体添加,另外您可以使用proguard规则的最佳做法follow the link for an example