步骤 1. 首先尝试清理并重新启动您的项目,看看它是否适合您。在大多数情况下,它会解决您的问题。
步骤 2. 如果这些都不适合您,则意味着您必须启用 MultiDex 模式。
对 Android 5.0 及更高版本的 Multidex 支持
Android 5.0 及更高版本使用名为 ART 的运行时,它本身
支持从应用程序APK文件加载多个dex文件。艺术
在应用程序安装时执行预编译,扫描
classes(..N).dex 文件并将它们编译成单个 .oat 文件
由Android设备执行。有关 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'
}
在您的清单中添加MultiDexApplication
类从 multidex 支持库到应用程序元素。
<?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);
...
}
最后,您需要通过添加以下内容来更新您的 build.gradle 文件multiDexEnabled true
:
defaultConfig {
applicationId '{Project Name}'
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
我希望它能帮助你。