app:compileFlutterBuildRelease 构建应用程序颤动时出错
Posted
技术标签:
【中文标题】app:compileFlutterBuildRelease 构建应用程序颤动时出错【英文标题】:app:compileFlutterBuildRelease error while building app flutter 【发布时间】:2020-10-28 01:28:12 【问题描述】:在源代码中运行“flutter pub get”... 5.9s 正在运行 Gradle 任务“bundleRelease”... 字体中未找到代码点 58848,正在中止。
目标 aot_android_asset_bundle 失败:FontSubset 错误:字体子集失败,退出代码为 -1。
构建失败。
FAILURE:构建失败并出现异常。
地点:脚本 'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle' 行:838
出了什么问题:任务 ':app:compileFlutterBuildRelease' 执行失败。
试试:Process 'command 'C:\src\flutter\bin\flutter.bat'' 以非零退出值 1 结束
使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。
在https://help.gradle.org 获得更多帮助在 2m 52s 内构建失败 运行 Gradle 任务 'bundleRelease'... 175.2s (!) Gradle 任务 bundleRelease 失败,退出代码为 1 进程以退出代码 1 结束
app:build.gradle
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists())
localPropertiesFile.withReader('UTF-8') reader ->
localProperties.load(reader)
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null)
throw new GradleException("Flutter SDK not found. Define location with
flutter.sdk in the local.properties file.")
def flutterVersionCode =
localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null)
flutterVersionCode = '1'
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null)
flutterVersionName = '1.0'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists())
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android
compileSdkVersion 28
sourceSets
main.java.srcDirs += 'src/main/kotlin'
lintOptions
disable 'InvalidPackage'
defaultConfig
applicationId "com.indianstore.onlineshopping"
minSdkVersion 19
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
resConfigs "en"
signingConfigs
release
if (System.getenv()["CI"]) // CI=true is exported by Codemagic
storeFile file(System.getenv()["FCI_BUILD_DIR"] + "/indianstorekey.jks")
storePassword System.getenv()["FCI_KEYSTORE_PASSWORD"]
keyAlias System.getenv()["FCI_KEY_ALIAS"]
keyPassword System.getenv()["FCI_KEY_PASSWORD"]
else
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
buildTypes
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.release
shrinkResources true
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debug
signingConfig signingConfigs.release
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
flutter
source '../..'
dependencies
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation 'com.android.support:multidex:1.0.3'
apply plugin: 'com.google.gms.google-services'
googleServices disableVersionCheck = true
【问题讨论】:
你有什么解决办法吗? 没有兄弟还没有,你有同样的问题 是的,我有。我在 pubspec.yaml 中使用 MaterialIcons 字体,我只是删除了它。 你能看到我的 pubspec.yaml 并告诉我应该删除哪个部分 你有解决这个问题的办法吗? 【参考方案1】:遇到同样的问题。
有了flutter build appbundle --verbose
,我找到了根本原因。它基于自定义图标,这是我很久以前用http://fluttericon.com/ 构建的。
所以有3种可能的解决方案:
-
添加标志“--no-tree-shake-icons”
移除自定义图标
再次重新生成自定义图标
一切都会好起来的!
【讨论】:
【参考方案2】:我在使用font_awesome_flutter 包时也遇到了同样的异常。
[ +2 ms] [ +4 ms] Codepoint 62694 not found in font, aborting.
[ +3 ms] [ +23 ms] Codepoint 62488 not found in font, aborting.
[ +1 ms] [ +47 ms] Target aot_android_asset_bundle failed: IconTreeShakerException: Font subsetting failed with exit code 255.
[ ] To disable icon tree shaking, pass --no-tree-shake-icons to the requested flutter build command
[ +43 ms] #0 IconTreeShaker.subsetFont (package:flutter_tools/src/build_system/targets/icon_tree_shaker.dart:217:7)
最后,我使用 flutter build apk --no-tree-shake-icons
进行构建
【讨论】:
【参考方案3】:我认为这行显示错误:
Codepoint 58848 not found in font, aborting.
检查您的pubspec.yaml
并查看此错误是否来自任何库。你的代码也可以在调试模式下工作吗?您是否在 pubspec 文件中添加了任何字体?
【讨论】:
在 pubspec.yaml 中只有 164 行 bro【参考方案4】:这会奏效!!!
扑干净, 扑吧得到, flutter build appbundle --release --no-tree-shake-icons
【讨论】:
【参考方案5】:请确保您在 Flutter Stable Channel 上运行:
flutter channel stable
flutter upgrade --force
那么当你重建时,错误就会消失。
【讨论】:
【参考方案6】:我解决了问题。 打开 FontAwesomeIcons.dart 类,搜索 E5E0(58848 的十六进制)并删除行,保存文件,然后再次构建。
【讨论】:
以上是关于app:compileFlutterBuildRelease 构建应用程序颤动时出错的主要内容,如果未能解决你的问题,请参考以下文章