【发布时间】:2016-08-02 21:26:43
【问题描述】:
我有一个带有几个库的应用程序,达到了 65536 个方法计数的红线。
- 我实现了将应用设置为
multidexAPK。 - 为了优化大小,我决定使用 Proguard,因为我只使用了
Guava和common.java.lang的一些功能,而这些库带来了他们的整个家庭。 - Proguard 工作后,我的应用程序参考 ~ 45 Kmethods
- 我经常读到,multidex 应用程序可能不时崩溃
- 而且由于第二个 dex 运行时加载,这需要时间。
4 和 5 是真的吗?
然后我只是尝试不使用mutidex,因为我的结束方法计数是
为此,我只是将gradle参数multiDexEnabled设置为false
还有其他需要检查/做的事情吗?
这是我的 Gradle 的一部分:
android {
compileSdkVersion ANDROID_BUILD_SDK_VERSION
buildToolsVersion ANDROID_BUILD_TOOLS_VERSION
defaultConfig {
applicationId "XXXX"
targetSdkVersion ANDROID_BUILD_TARGET_SDK_VERSION
minSdkVersion ANDROID_BUILD_MIN_SDK_VERSION
versionCode ANDROID_BUILD_VERSION_CODE
versionName ANDROID_BUILD_APP_VERSION_NAME
// Enabling multidex support.
multiDexEnabled false
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
debuggable false
ext.enableCrashlytics = true
renderscriptOptimLevel 3
signingConfig android.signingConfigs.release
zipAlignEnabled true
minifyEnabled true
// shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-rules-new.pro', 'proguard-rules-eventbus.pro', 'proguard-rules-firebase.pro', 'proguard-rules-fabric.pro', 'proguard-rules-leakcanary.pro'
}
debug {
debuggable true
renderscriptOptimLevel 3
applicationIdSuffix ".debug"
versionNameSuffix "debug"
}
}
【问题讨论】:
-
4) 我经常读到 multidex 应用程序可能会不时崩溃。这不是真的。更好地使用 multidex 。 5)因为第二个dex运行时加载,这需要时间吗?这是真的,这需要时间..building..u 可以将 productFlavors 用于开发和生产...它将快速构建
-
可以添加错误日志吗?
标签: android android-gradle-plugin proguard android-proguard android-multidex