Flutter Android SDK 版本 28 错误,但我使用的是 30

Posted

技术标签:

【中文标题】Flutter Android SDK 版本 28 错误,但我使用的是 30【英文标题】:Flutter Android SDK version 28 Error but I am using 30 【发布时间】:2021-01-21 04:52:22 【问题描述】:

当我创建一个新的颤振应用程序时,它启动了 android sdk 版本 28,但我使用的是 android sdk 30。 Flutter Doctor 还展示了 Platform android-30, build-tools 30.0.2。当我尝试安装 url_launcher 或 shared_preferences 之类的软件包时,出现错误它正在寻找 Android sdk 30。 此外,每次我从 build.gradle 更改 android sdk 版本时。

这是我的颤振医生输出:

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.0, on Linux, locale en_US.UTF-8)
    • Flutter version 1.22.0 at /home/felix/snap/flutter/common/flutter
    • Framework revision d408d302e2 (7 days ago), 2020-09-29 11:49:17 -0700
    • Engine revision 5babba6c4d
    • Dart version 2.10.0

 
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /home/felix/Android/Sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /home/felix/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6626763/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[!] Android Studio (version 4.0)
    • Android Studio at /home/felix/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6626763
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593

)

网址启动程序包错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':url_launcher:parseDebugLibraryResources'.
> Could not resolve all files for configuration ':url_launcher:androidApis'.
   > Failed to transform file 'android.jar' to match attributes artifactType=android-platform-attr, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime
      > Execution failed for PlatformAttrTransform: /home/computer/Android/Sdk/platforms/android-28/android.jar.
         > /home/computer/Android/Sdk/platforms/android-28/android.jar (No such file or directory)

* 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 2s

异常:Gradle 任务 assembleDebug 失败,退出代码为 1

我的 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"

android 
    compileSdkVersion 30

    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.example.appdeals"
        minSdkVersion 16
        targetSdkVersion 30
        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 '../..'


dependencies 
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

shared_preferences 错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':shared_preferences:parseDebugLibraryResources'.
> Could not resolve all files for configuration ':shared_preferences:androidApis'.
   > Failed to transform file 'android.jar' to match attributes artifactType=android-platform-attr, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime
      > Execution failed for PlatformAttrTransform: /home/computer/Android/Sdk/platforms/android-28/android.jar.
         > /home/computer/Android/Sdk/platforms/android-28/android.jar (No such file or directory)

* 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 8s
Exception: Gradle task assembleDebug failed with exit code 1
Exited (sigterm)

【问题讨论】:

【参考方案1】:

试试这个,

minSdkVersion 16
compileSdkVersion 28
targetSdkVersion 29

【讨论】:

应该是 compileSdkVersion 而不是“compiledSdkVersion”,但对我有用【参考方案2】:

在你的根项目的终端试试这个:

flutter pub upgrade

然后

flutter clean

然后再次运行您的项目。

【讨论】:

以上是关于Flutter Android SDK 版本 28 错误,但我使用的是 30的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 需要 Android SDK 29 和 Android BuildTools 28.0.3,同时两者都有

Android studio 使用flutter插件 运行第一个flutter项目 报错 Warning: License for package Android SDK Build-Tools 28

Flutter设置:将android Sdk从设备转移到另一个

vscode flutter 环境搭建

谷歌Flutter跨平台应用开发SDK,迎来首个发行预览版本

忽略指定的Android SDK Build Tools版本(28.0.2)