【发布时间】:2021-08-26 01:08:38
【问题描述】:
我正在尝试将我的项目升级到一些最新版本,但由于项目中的某些依赖项尚未更新,我无法获得 null-safety。
我使用了 sdk 版本 2.10,同时我更新了所有核心包,解决了所有重大更改。一些已弃用的更改(即 FlatButton 到 TextButton,尚未解决)。
我在构建解决方案时遇到了几个问题,在查阅了一些旧的 Stack 帖子后,我拼凑了 gradle 文件更新、升级到 Android Studio 等...
但是,当我将解决方案构建为使用或覆盖已弃用的 API 时,并且当它安装在虚拟设备上时,它会在启动失败且不提供错误的情况下收到警告。
我想知道我对 gradle 文件的破解是否是原因 - 我想确认这些 gradle 更新是否正确(特别是正在使用的版本)。
App > Android > build.gradle
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.3'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}
App > Android > App > build.grade
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"
android {
compileSdkVersion 29
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.<appname>.app"
minSdkVersion 23
targetSdkVersion 29
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 '../..'
}
apply plugin: 'com.android.application'
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.google.firebase:firebase-analytics:17.2.2'
}
apply plugin: 'com.google.gms.google-services'
app > android > wrapper > gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
pubspec.yaml 包版本:
cloud_firestore: ^2.2.1
firebase_auth: ^1.2.0
firebase_core: ^1.2.0
firebase_analytics: ^8.1.0
cloud_functions: ^1.1.0
firebase_storage: ^8.1.0
firebase_messaging: ^10.0.0
google_sign_in: ^5.0.4
devicelocale: ^0.3.2
image_cropper: ^1.4.0
local_auth: ^1.1.6
pubspec.yaml SDK 版本
environment:
sdk: ">=2.10.0 <3.0.0"
调试控制台警告/注意:
在应用程序中运行“flutter pub get”...警告:您正在使用这些 覆盖依赖:! font_awesome_flutter 8.8.1 来自路径 /Users/prad/Development/packages/font_awesome 正在启动 lib/main.dart 在调试模式下为 x86 构建的 Android SDK 上...注意: /Users/prad/.pub-cache/hosted/pub.dartlang.org/devicelocale-0.3.2/android/src/main/java/com/example/devicelocale/DevicelocalePlugin.java 使用或覆盖已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。注意:/Users/prad/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.2.1/android/src/main/java/io/flutter/plugins/firebase/core/FlutterFirebaseCorePlugin.java 使用或覆盖已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。注意:/Users/prad/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-2.2.1/android/src/main/java/io/flutter/plugins/firebase/firestore/FlutterFirebaseFirestorePlugin.java 使用或覆盖已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。注意:/Users/prad/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-2.2.1/android/src/main/java/io/flutter/plugins/firebase/firestore/streamhandler/TransactionStreamHandler.java 使用未经检查或不安全的操作。
注意:使用 -Xlint:unchecked 重新编译以获取详细信息。笔记: /Users/prad/.pub-cache/hosted/pub.dartlang.org/firebase_analytics-8.1.0/android/src/main/java/io/flutter/plugins/firebaseanalytics/FirebaseAnalyticsPlugin.java 使用或覆盖已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。注意:/Users/prad/.pub-cache/hosted/pub.dartlang.org/firebase_analytics-8.1.0/android/src/main/java/io/flutter/plugins/firebaseanalytics/FirebaseAnalyticsPlugin.java 使用未经检查或不安全的操作。
注意:使用 -Xlint:unchecked 重新编译以获取详细信息。笔记: /Users/prad/.pub-cache/hosted/pub.dartlang.org/cloud_functions-1.1.0/android/src/main/java/io/flutter/plugins/firebase/functions/FlutterFirebaseFunctionsPlugin.java 使用或覆盖已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。注意:/Users/prad/.pub-cache/hosted/pub.dartlang.org/firebase_auth-1.2.0/android/src/main/java/io/flutter/plugins/firebase/auth/FlutterFirebaseAuthPlugin.java 使用或覆盖已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。 /Users/prad/.pub-cache/hosted/pub.dartlang.org/firebase_storage-8.1.0/android/src/main/java/io/flutter/plugins/firebase/storage/FlutterFirebaseStoragePlugin.java:38: 警告:[弃用] PluginRegistry 中的注册器已被弃用 公共静态无效 registerWith(PluginRegistry.Registrar 注册商) { ^ 1 个警告 注意:某些输入文件使用或覆盖了已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。注意:某些输入文件使用未经检查或不安全的操作。注意:使用 -Xlint:unchecked 重新编译 细节。注意:某些输入文件使用或覆盖已弃用的 API。 注意:使用 -Xlint:deprecation 重新编译以获取详细信息。笔记: /Users/prad/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage-4.2.0/android/src/main/java/com/it_nomads/fluttersecurestorage/FlutterSecureStoragePlugin.java 使用或覆盖已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。注意:/Users/prad/.pub-cache/hosted/pub.dartlang.org/google_sign_in-5.0.4/android/src/main/java/io/flutter/plugins/googlesignin/GoogleSignInPlugin.java 使用或覆盖已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。注意:/Users/prad/.pub-cache/hosted/pub.dartlang.org/image_cropper-1.4.0/android/src/main/java/vn/hunghd/flutter/plugins/imagecropper/ImageCropperPlugin.java 使用或覆盖已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。注意:/Users/prad/.pub-cache/hosted/pub.dartlang.org/local_auth-1.1.6/android/src/main/java/io/flutter/plugins/localauth/LocalAuthPlugin.java 使用或覆盖已弃用的 API。注意:重新编译 -Xlint:deprecation 了解详情。注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。 ✓ 内置 build/app/outputs/flutter-apk/app-debug.apk。失去了连接 到设备。
我使用的虚拟设备是 Pixel 3a API 版本 29。
【问题讨论】:
标签: android flutter android-studio gradle