如果我按照 Flutter 中的指南进行操作,为什么会出现 Gradle 错误?

Why I'm getting Gradle error if I follow the guide in Flutter?

我已经尝试从 Flutter 导出应用程序包,问题出在签名配置上,默认是调试(并且它有效)但是如果我发布显示 Gradle 错误并且无法继续。如果我按照 Flutter 发布指南进行操作,有哪些步骤或哪里错了?

我已经创建了 buildType,但即使我 select 调试版本仍然出现错误。

android {
compileSdkVersion 29

lintOptions {
    disable 'InvalidPackage'
    checkReleaseBuilds false
}

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.homework.practice1"
    minSdkVersion 21
    targetSdkVersion 29
    ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}


signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

我希望导出 32 位和 64 位应用程序包,但是当我进行调试签名时,它只有一个。如果要发布 select 会导致 Gradle 错误 1.

您可以在 build.gradle 中添加此代码,在 "flutter" 之后,如下所示,当您生成 "build",

flutter {
    source '../..'
}

afterEvaluate {
    mergeReleaseJniLibFolders.doLast {
        def archTypes = ["arm-release", "arm64-release"]
        archTypes.forEach { item ->
            copy {
                from zipTree("$flutterRoot/bin/cache/artifacts/engine/android-$item/flutter.jar")
                include 'lib/*/libflutter.so'
                into "$buildDir/intermediates/jniLibs/release/"
                eachFile {
                    it.path = it.path.replaceFirst("lib/", "")
                }
            }
        }
    }
}