Jan*_*usz 132 android gradle android-multidex
我想使用新的Multidex支持库来打破我的某个应用程序的方法限制.
借助Android Lollipop,Google推出了一个multidex支持库,可以轻松实现多索引.
使用此库需要哪些步骤以及使用multidex支持构建我的应用程序?
Cha*_*ham 271
编辑:
Android 5.0(API级别21)及更高版本使用本机支持多索引的ART.因此,如果您minSdkVersion的等级为21或更高,则不需要multidex支持库.
修改你的build.gradle:
android {
compileSdkVersion 22
buildToolsVersion "23.0.0"
defaultConfig {
minSdkVersion 14 //lower than 14 doesn't support multidex
targetSdkVersion 22
// Enabling multidex support.
multiDexEnabled true
}
}
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
Run Code Online (Sandbox Code Playgroud)
如果您正在运行单元测试,则需要在Application课程中包含此项:
public class YouApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Run Code Online (Sandbox Code Playgroud)
或者只是让你的application课程扩展MultiDexApplication
public class Application extends MultiDexApplication {
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,这是一个很好的指南.
Jan*_*usz 44
启动多dexing需要以下步骤:
将android-support-multidex.jar添加到您的项目中.jar可以在Android SDK文件夹/ sdk/extras/android/support/multidex/library/libs中找到
现在,您要么让应用程序类应用程序类扩展MultiDexApplication
public class MyApplication extends MultiDexApplication
Run Code Online (Sandbox Code Playgroud)
或者像这样覆盖attachBaseContext:
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
Run Code Online (Sandbox Code Playgroud)
我使用了覆盖方法,因为它不会混淆应用程序类的类层次结构.
现在您的应用已准备好使用multi dex.下一步是说服gradle构建一个多dexed apk.构建工具团队正在努力使这更容易,但目前你需要将以下内容添加到你的应用程序build.gradle的android部分
dexOptions {
preDexLibraries = false
}
Run Code Online (Sandbox Code Playgroud)
以下是应用build.gradle的一般部分
afterEvaluate {
tasks.matching {
it.name.startsWith('dex')
}.each { dx ->
if (dx.additionalParameters == null) {
dx.additionalParameters = ['--multi-dex']
} else {
dx.additionalParameters += '--multi-dex'
}
}
}
Run Code Online (Sandbox Code Playgroud)
更多信息可以在Alex Lipovs博客上找到.
smo*_*mut 17
简单,为了启用multidex,你需要......
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
implementation 'com.android.support:multidex:1.0.0'
}
Run Code Online (Sandbox Code Playgroud)
您还必须更改清单文件.在清单中,将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>
Run Code Online (Sandbox Code Playgroud)
在build.gradle中添加此依赖项:
compile 'com.android.support:multidex:1.0.1'
Run Code Online (Sandbox Code Playgroud)
再次在build.gradle文件中将此行添加到defaultConfig块:
multiDexEnabled true
Run Code Online (Sandbox Code Playgroud)
而不是从Application扩展您的应用程序类,而是从MultiDexApplication扩展它; 喜欢 :
public class AppConfig extends MultiDexApplication {
Run Code Online (Sandbox Code Playgroud)
现在你很高兴去!如果你需要它,一切MultiDexApplication都是
public class MultiDexApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Run Code Online (Sandbox Code Playgroud)
构建.gradle
multiDexEnabled true
implementation 'androidx.multidex:multidex:2.0.1'
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml
<application
android:name="androidx.multidex.MultiDexApplication"
Run Code Online (Sandbox Code Playgroud)
这是截至 2020 年 10 月使用 Android X 的最新方法。这来自 Android 的文档“为具有超过 64K 方法的应用程序启用 multidex ”。
minSdk>= 21你不需要做任何事情。所有这些设备都使用 Android RunTime (ART) VM,它本机支持 multidex。
minSdk< 21在您的module -level 中build.gradle,确保填充了以下配置:
android {
defaultConfig {
multiDexEnabled true
}
}
dependencies {
implementation 'androidx.multidex:multidex:2.0.1'
}
Run Code Online (Sandbox Code Playgroud)
您需要安装显式 multidex 支持。该文档包括三种方法,您必须选择一种。
例如,在您的 中src/main/AndroidManifest.xml,您可以声明MultiDexApplication为application:name:
android {
defaultConfig {
multiDexEnabled true
}
}
dependencies {
implementation 'androidx.multidex:multidex:2.0.1'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
192138 次 |
| 最近记录: |