第 1 步。首先尝试清理并重新启动您的项目,看看它是否适合您。在大多数情况下,它会解决您的问题。
第 2 步。如果这些都不适合您,则意味着您必须启用 MultiDex 模式。
对 Android 5.0 及更高版本的 Multidex 支持
Android 5.0 及更高版本使用一个名为 ART 的运行时,它本机
支持从应用 APK 文件中加载多个 dex 文件。艺术
在应用程序安装时执行预编译,扫描
classes(..N).dex 文件并将它们编译成单个 .oat 文件
由安卓设备执行。有关 Android 的更多信息
5.0 运行时,请参阅 ART 简介。
这意味着您的应用可以在 API 级别 21 或更高级别上正常运行。
Android 5.0 之前的 Multidex 支持
Android 5.0 之前的平台版本使用 Dalvik 运行时
用于执行应用程序代码。默认情况下,Dalvik 将应用程序限制为单个
每个 APK 的 classes.dex 字节码文件。为了解决这个问题
限制,你可以使用multidex支持库,它变成
应用程序的主要 DEX 文件的一部分,然后管理对
额外的 DEX 文件及其包含的代码。
所以,首先确保你已经导入了正确的依赖,看起来你可以通过以下方式做到这一点。
dependencies {
// Change as per the latest dependency
compile 'com.android.support:multidex:1.0.1'
}
在您的清单中,将来自 multidex 支持库的 MultiDexApplication 类添加到应用程序元素。
<?xml version="1.0" encoding="utf-8"?>
<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>
除此之外,如果您的应用扩展了Application 类,您可以覆盖attachBaseContext() 方法并调用MultiDex.install(this) 以启用multidex。
public void onCreate(Bundle arguments) {
MultiDex.install(getTargetContext());
super.onCreate(arguments);
...
}
最后,您需要通过添加multiDexEnabled true 来更新您的 build.gradle 文件,如下所示:
defaultConfig {
applicationId '{Project Name}'
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
希望对你有所帮助。