[英]Removing unused resources requires unused code shrinking to be turned on
我正准备发布一个应用程序来生产。 所以,我生成了签名的apk。 生成签名的apk后,我遇到了问题。 我的 apk 文件有点大,我尝试了缩小 apk 大小的方法。 我已经试过了
app --> 重构 --> 删除未使用的资源
并且不会太减少。 所以,我在 build.gradle(app) 中添加了shrinkResources true
buildTypes {
release {
minifyEnabled false
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
添加shrinkResources true后,我在重建时遇到了以下错误。 我的问题是我应该如何首先打开未使用的代码收缩? 感谢和赞赏。
资源收缩仅与代码收缩结合使用。 代码收缩器删除所有未使用的代码后,资源收缩器可以识别应用程序仍在使用哪些资源。 当您添加包含资源的代码库时尤其如此——您必须删除未使用的库代码,以便库资源不被引用,从而被资源压缩器移除
要启用资源收缩,请将 build.gradle 文件中的 shrinkResources 属性设置为 true(与 minifyEnabled 一起用于代码收缩)。 例如:
android {
...
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
}
也许你在minifyEnabled = false
错误地设置了minifyEnabled = false
和shrinkResources = true
,所以,也许,这是问题的根源,而不是你的 buildTypes.release
您可能需要参考 Android 文档来缩小您的代码和资源:
就像已经指出的评论一样,资源收缩仅在您使用代码收缩器时才有效。 要在build.gradle
文件中启用shrinkResources
,您必须首先将minifyEnabled
设置为true
很简单,只需打开 App 级别的 build.gradle 文件,即 android/app/build.gradle 并实现:
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
useProguard true
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
android {
buildTypes {
release {
minifyEnabled true
shrinkResources true
}
}
}
确保将其添加到 gradle 的适当部分
signingConfigs {
buildTypes {
debug {
buildConfigField "java.util.Date", "buildTime", "new java.util.Date(" + System.currentTimeMillis() + "L)"
}
release {
buildConfigField "java.util.Date", "buildTime", "new java.util.Date(" + System.currentTimeMillis() + "L)"
}
}
}
buildTypes {
release {
minifyEnabled false
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
为了使用资源收缩,您还需要启用代码收缩,因为它们两者协同工作。
为此,请设置shrinkResources true和minifyEnabled true 。
您可以按照相同的官方网站。
如果您添加了shrinkResources true
确保它出现在minifyEnabled true
之后,那么订单很重要,所以https://stackoverflow.com/a/56426634/10355668是正确的,谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.