java - 颤振运行时颤振应用程序构建失败
问题描述
我是 Flutter 应用程序开发的新手。获得了颤振项目的移交并尝试运行,但通过终端命令获取构建失败异常。
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' line: 62 points to
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
尝试了 iOS 和 Android 模拟器以及物理设备,但没有成功我现在该怎么办?抱歉任何英语语法错误
解决方案
它是 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
。
您的问题很可能会得到解决。
推荐阅读
- python - Pandas - Groupby 在组内查找组
- json - 使用 sqlite3 在 Django 数据库/模型中仅检索一条具有不同变体的记录
- oracle - 排序后分配行号
- python - 我已经在命令终端的 pip 上下载了模块,然后如何在 Idle 文档中使用它们?
- pandas - 获取多索引数据框中数值列的平均值
- r - 如何检查和替换数据框是否包含 R 中的任何向量元素?
- mysql - 使用 MySQL > 5 和 QSqlQuery 将值绑定到存储过程?
- javascript - 如何在“useEffect”挂钩中获取最新的组件变量值?
- c# - 如何避免我的 HttpClient 为单个客户端实例打开多个连接?
- kubernetes - Kubernetes NodePort 连接超时