【问题标题】:Flutter App Build Failed while flutter run颤振运行时颤振应用程序构建失败
【发布时间】:2021-01-05 17:25:12
【问题描述】:

我是 Flutter 应用开发的新手。拿到了flutter项目的交接,尝试运行,终端命令出现Build Failed Exception。

flutter run -t lib/main_prod.dart

在终端中遇到这些错误

Using hardware rendering with device Android SDK built for x86. If you notice graphics artifacts,
consider enabling software rendering with "--enable-software-rendering".
Launching lib/main_prod.dart on Android SDK built for x86 in debug mode...
                                                                        
FAILURE: Build failed with an exception.                                
                                                                        
* Where:                                                                
Build file '/Users/ashishsciit/Desktop/Ashish/onfees/edflylearnGit/android/app/build.gradle' line: 62
                                                                        
* What went wrong:                                                      
A problem occurred evaluating project ':app'.                           
> java.net.URISyntaxException: Illegal character in opaque part at index 2: C:\Work\edflylearn\edfly_learn_release_key.jks
                                                                        
* 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 42s                                                     
Running Gradle task 'assembleDebug'...                                  
Running Gradle task 'assembleDebug'... Done                        45.0s
Exception: Gradle task assembleDebug failed with exit code 1

Android 应用级 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 29

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        applicationId "easy.tech.innovations.edflylearn"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        debug {
            debuggable true
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        release {
            minifyEnabled true
            shrinkResources true
            debuggable false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.google.firebase:firebase-messaging:20.2.0'
}

apply plugin: 'com.google.gms.google-services'

在上面的代码构建文件'/Users/ashishsciit/Desktop/Ashish/onfees/edflylearnGit/android/app/build.gradle'行:62点到

storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null

尝试了 iOS 和 Android 模拟器以及物理设备,但没有成功 我现在该怎么办 ? 如有英文语法错误,请见谅

【问题讨论】:

    标签: java android flutter gradle dart


    【解决方案1】:

    这是 Firebase 配置的项目。

    此错误是由于 firebase firebase 的一些配置错误。错误是由于生成的密钥库造成的。

    您应该会看到 Firebase 控制台项目和应用的配置,并通过运行重新生成 SHA 指纹:

    • keytool -genkey -v -keystore c:\Users\USER_NAME\key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key
    • 然后运行 ​​keytool -list -v -keystore debug.keystore -alias androiddebugkey 以查看您的密钥。
    • 将这些密钥复制并粘贴到 Firebase 项目应用中。

    第二个解决方案是

    • 查看 android/key.properties 中是否存在 key.properties 文件。
    • 通过在命令提示符下运行以下命令检查生成的密钥是否与此文件中提到的密钥匹配。
    • 运行 keytool -list -v -keystore debug.keystore -alias androiddebugkey 以查看您的密钥。
    • 将相同的密钥复制到您的 firebase 项目并下载“google-services.json”文件并将其粘贴到项目中的应用程序文件夹“C:\Users\USERNAME\AndroidStudioProjects\PROJECT_NAME\android\app\google-services. json”。
    • 运行flutter clean
    • 通过运行pub get 再次获取所有依赖项。

    您的问题很可能会得到解决。

    【讨论】:

    • 在您的项目中查找 key.properties 文件并更正匹配的密钥
    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 2022-01-01
    • 2019-09-25
    相关资源
    最近更新 更多