Flutter打包Android Release版本时R8Task执行失败求助
Flutter打包Android Release版本时R8Task执行失败求助
我现在卡在Flutter打包Android Release版本的环节了,遇到了R8相关的执行错误,试遍了网上能找到的方法都没解决,求各位帮忙看看!
下面是我遇到的完整错误信息:
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:minifyReleaseWithR8'. > A failure occurred while executing com.android.build.gradle.internal.tasks.R8Task$R8Runnable > 'com.android.tools.r8.R8Command$Builder com.android.tools.r8.R8Command$Builder.setEnableExperimentalMissingLibraryApiModeling(boolean)' * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 23s Running Gradle task 'assembleRelease'... 24,3s ┌─ Flutter Fix ──────────────────────────────────────────────────────────────┐ │ [!] The shrinker may have failed to optimize the Java bytecode. │ │ To disable the shrinker, pass the `--no-shrink` flag to this command. │ │ To learn more, see: https://developer.android.com/studio/build/shrink-code │ └────────────────────────────────────────────────────────────────────────────┘ Exception: Gradle task assembleRelease failed with exit code 1 #0 throwToolExit (package:flutter_tools/src/base/common.dart:10:3) #1 AndroidGradleBuilder.buildGradleApp (package:flutter_tools/src/android/gradle.dart:552:7) <asynchronous suspension> #2 AndroidGradleBuilder.buildApk (package:flutter_tools/src/android/gradle.dart:243:5) <asynchronous suspension> #3 AndroidDevice.startApp (package:flutter_tools/src/android/android_device.dart:578:7) <asynchronous suspension> #4 FlutterDevice.runCold (package:flutter_tools/src/resident_runner.dart:534:33) <asynchronous suspension> #5 ColdRunner.run (package:flutter_tools/src/run_cold.dart:57:28) <asynchronous suspension> #6 RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:753:27) <asynchronous suspension> #7 FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1323:27) <asynchronous suspension> #8 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) <asynchronous suspension> #9 CommandRunner.runCommand (package:args/command_runner.dart:212:13) <asynchronous suspension> #10 FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:339:9) <asynchronous suspension> #11 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) <asynchronous suspension> #12 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:285:5) <asynchronous suspension> #13 run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:115:9) <asynchronous suspension> #14 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19) <asynchronous suspension> #15 main (package:flutter_tools/executable.dart:90:3) <asynchronous suspension>
这是我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 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' // START: FlutterFire Configuration apply plugin: 'com.google.gms.google-services' // END: FlutterFire Configuration apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { namespace "com.example.soliveri_app" compileSdk 34 compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } sourceSets { main.java.srcDirs += 'src/main/kotlin' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.soliveri_app" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. minSdkVersion 21 targetSdkVersion 31 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } 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.debug } } } flutter { source '../..' } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" }
接着是根目录下的模块级build.gradle文件:
buildscript { ext { agp_version = '8.1.1' } ext.kotlin_version = '1.9.10' repositories { google() mavenCentral() } dependencies { // START: FlutterFire Configuration classpath 'com.google.gms:google-services:4.3.15' // END: FlutterFire Configuration classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "com.android.tools.build:gradle:$agp_version" } } allprojects { repositories { google() mavenCentral() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } tasks.register("clean", Delete) { delete rootProject.buildDir }
我已经尝试了网上能找到的各种方法:调整Kotlin、Gradle、SDK的版本,添加ProGuard文件,但都没能解决这个问题。现在我急需生成应用的Release版本,却被这个错误卡住了,有没有大佬能指点一下?
备注:内容来源于stack exchange,提问作者Davide Resigotti
相关产品推荐
相关产品推荐

