当前位置: 首页 > 知识库问答 >
问题:

使用或覆盖不推荐使用的API

左丘昊天
2023-03-14

我试图将我的项目升级到一些最新版本,但由于项目中的一些依赖项尚未更新,我无法获得空安全性。

我已经求助于sdk版本2.10,同时我更新了所有核心包,解决了所有突破性的更改。一些不推荐的更改(如FlatButton到TextButton,尚未解决)。

我在构建解决方案时遇到了几个问题,在咨询了一些旧的Stack帖子后,我拼凑了gradle文件更新,升级到Android Studio等...

但是,当我将解决方案构建为使用或覆盖不推荐使用的API时,以及当它安装在虚拟设备上时,在没有提供错误的情况下启动失败时,我会收到警告。

我想知道我对gradle文件的黑客攻击是否是原因——我想确认这些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
}

应用程序

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'

应用程序

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

公共规范。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.yamlSDK版本

environment:
  sdk: ">=2.10.0 <3.0.0"

调试控制台警告/注意:

在应用程序中运行“颤动酒吧获取”...警告:您正在使用这些被重写的依赖项:!font_awesome_flutter8.8.1从路径 /Users/prad/Development/packages/font_awesome启动lib/main.dart在Android SDK构建的x86调试模式...注意: /Users/prad/.pub-cache/hosted/pub.dartlang.org/devicelocale-0.3.2/android/src/main/java/com/example/devicelocale/DevicelocalePlugin.java使用或覆盖已弃用的API。注意:使用-Xlint重新编译:弃用以获取详细信息。注意: /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重新编译:弃用以获取详细信息。注意: /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重新编译:弃用以获取详细信息。注意: /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重新编译:未选中以获取详细信息。注意:/Users/prad/。发布缓存/托管/发布。达特朗。org/firebase_analytics-8.1.0/android/src/main/java/io/flatter/plugins/firebaseanlytics/firebaseanlyticsplugin。java使用或覆盖不推荐使用的API。注意:有关详细信息,请使用-Xlint:deprecation重新编译。注意:/Users/prad/。发布缓存/托管/发布。达特朗。org/firebase_analytics-8.1.0/android/src/main/java/io/flatter/plugins/firebaseanlytics/firebaseanlyticsplugin。java使用未经检查或不安全的操作。

注意:使用-Xlint重新编译:未检查详细信息。注意: /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重新编译:弃用以获取详细信息。注意: /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重新编译:弃用以获取详细信息。/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:警告:[弃用]插件注册表中的注册商已弃用公共静态无效注册(插件注册表。注册器注册器){^1警告注意:某些输入文件使用或覆盖已弃用的API。注意:使用-Xlint重新编译:弃用以获取详细信息。注意:一些输入文件使用未经检查或不安全的操作。注意:使用-Xlint重新编译:未检查详细信息。注意:某些输入文件使用或覆盖已弃用的API。注意:使用-Xlint重新编译:弃用以获取详细信息。注意: /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重新编译:弃用以获取详细信息。注意: /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重新编译:弃用以获取详细信息。注意: /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重新编译:弃用以获取详细信息。注意: /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重新编译:弃用以获取详细信息。注意:某些输入文件使用或覆盖已弃用的API。注意:使用-Xlint重新编译:弃用以获取详细信息。✓内置/应用程序/输出/flutt-apk/app-debug.apk.设备连接丢失。

我使用的虚拟设备是Pixel3A API版本29。

共有1个答案

宇文卓
2023-03-14

如果您正在使用的一些插件还没有支持颤振空安全性,您可以在您的构建中添加--no sound null safety参数,如本指南所述。即使使用的某些插件不支持空安全性,此参数也应该允许您构建Flutter项目。

 类似资料:
  • 我在最新的Android Studio上创建了一个全新的Android项目。我做的第一件事是将`realm'库添加到项目中,方法是将以下内容添加到gradle文件中: 如果我尝试编译,我会得到以下错误: Origine2:C:\users\usmaan.gradle\caches\caches\modules-2\files-2.1\io.realm\realm-android\0.80.3\79

  • 我一直在尝试在Android/IOS颤振应用程序中使用auth、firestore firebase,在测试了几个不同版本后,遇到了许多不同的问题。现在,它向我显示了构建日志中的几条消息。 构建日志 注意:D:\flatter\SDK\flatter。发布缓存\托管\发布。达特朗。org\firebase\u core-0.4。3.1\android\src\main\java\io\flatte

  • 我编译了我的程序,得到了下面的错误。我该如何解决?

  • 我已经使用了最新版本的video_player:^0.10.5+1),但显示以下警告。 注意:某些输入文件使用或重写不推荐的API。 注意:使用-xlint重新编译:有关详细信息。 注意:注意:详细信息请使用-xlint:deprecation重新编译。

  • 问题内容: 我已经看到了许多在API上使用注释以将其标记为“需要尽快替换”的示例。 但是,在几乎所有这些情况下,代码开发人员不仅继续使用已弃用的API,而且还抑制了弃用警告。 似乎API开发人员的最佳意图最终是创建更多与已实现的业务逻辑无关的代码- 如果不赞成使用API​​,但在抑制相关警告的情况下继续使用它,则似乎充其量只是代码的降级,并且在IMHO最差的情况下替换不推荐使用的库时,可能会导致应

  • 问题内容: 我收到此警告,但是该程序仍然可以正常运行。 MySQL代码向我显示了一条PHP消息: 不推荐使用:mysql_connect():不推荐使用mysql扩展,以后将被删除:在第2行的C:\ xampp \ htdocs \ task \ media \ new \ connect.inc.php中使用mysqli或PDO代替 我的页面是 这是什么意思,我该如何消除该消息? 问题答案: 有