实际上,当我尝试运行适用于 Android 的 Flutter 构建时,我遇到了一个非常奇怪的错误。 首先我想向你展示这个错误。之后,我向您展示
Flutter doctor
结果和我的项目的具体代码部分。
使用
flutter run
运行android项目后出错
- 出了什么问题:评估项目“:app”时出现问题。
在 DefaultConfig_Decolated{name=main,dimension=null, 上找不到参数 [1.0.0, null] 的方法 versionName() minSdkVersion=DefaultApiVersion{mApiLevel=18, mCodename='null'}, targetSdkVersion=DefaultApiVersion{mApiLevel=28, mCodename='null'}, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptSupportModeBlasEnabled=null, renderscriptNdkModeEnabled=null,versionCode=8,versionName=null, applicationId=de.danielederosa.virtualguestbook, testApplicationId=null,testInstrumentationRunner=null, testInstrumentationRunnerArguments={},testHandleProfiling=null, testFunctionalTest=null,signingConfig=null,resConfig=null, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}, mWearAppUnbundled=null} 类型 com.android.build.gradle.internal.dsl.DefaultConfig。
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
- 获取更多帮助
在 6 秒内构建失败异常:Gradle 任务 assembleDebug 失败,并显示 退出代码 1 退出 (sigterm)
build.gradle
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.2'
classpath 'com.google.gms:google-services:4.3.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
gradle.wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
pubspec.yaml
version: 1.0.0+8
有趣的是,它显示
versionName=null
,如果我像这样覆盖变量:
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "de.danielederosa.virtualguestbook"
minSdkVersion 18
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName '1.0.0',
multiDexEnabled true
}
您知道可能出现什么问题吗?也许与 gradle 版本有些不兼容?
我认为您在“versionName '1.0.0'”行上犯了一个错误, 有一个不应该出现的逗号。 将行更改为
versionName '1.0.0'
我希望我有所帮助。
将其设为默认设置,看看它是否有效:
这是我默认的flutter build.gradle(应用程序)
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
和
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.teddichiiwa.example"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
我找到了解决方案,我不知道我是怎么做到的,但这可能对我有帮助,如果其他解决方案请通知我,
将其添加到您的 app/build.gradle 文件中
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
compileSdkPreview = "UpsideDownCake"
也更新你的这个
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localProperties.load(new FileInputStream(localPropertiesFile))
}
def flutterVersionName =localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0.1'
}
def flutterVersionCode =localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '7'
}
我还将 local.properties 更新为此
sdk.dir=/Users/cleaques_sys1/Library/Android/sdk
flutter.sdk=/Users/cleaques_sys1/flutter
flutter.buildMode=release
flutter.flutterVersionName=1.0.1
flutter.versionCode=7
flutter.flutterVersionCode=7
flutter.versionName=1.0.1