Flutter开发报错uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library

本文主要是介绍Flutter开发报错uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

扫城堡有惊喜

文章目录

  • 问题描述
  • 问题原因
  • 解决方法
  • gradle文件介绍
    • 项目级别的build.gradle
    • 模块级别的build.gradle
    • 总结

问题描述

今天导入一个新项目时报错,报错内容如下:

uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:wakelock_plus]

完整报错如下:

D:\WORK\myLearningWork\development\storetest\android\app\src\debug\AndroidManifest.xml Error:uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:wakelock_plus] D:\WORK\myLearningWork\development\storetest\build\wakelock_plus\intermediates\merged_manifest\debug\AndroidManifest.xml as the library might be using APIs not available in 16Suggestion: use a compatible library with a minSdk of at most 16,or increase this project's minSdk version to at least 19,or use tools:overrideLibrary="dev.fluttercommunity.plus.wakelock" to force usage (may lead to runtime failures)FAILURE: Build failed with an exception.* What went wrong:
Execution failed for task ':app:processDebugMainManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:wakelock_plus] D:\WORK\myLearningWork\development\storetest\build\wakelock_plus\intermediates\merged_manifest\debug\AndroidManifest.xml as the library might be using APIs not available in 16Suggestion: use a compatible library with a minSdk of at most 16,or increase this project's minSdk version to at least 19,or use tools:overrideLibrary="dev.fluttercommunity.plus.wakelock" to force usage (may lead to runtime failures)* 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.orgBUILD FAILED in 26s

如图:
在这里插入图片描述

问题原因

SDK版本太低导致的。

解决方法

修改build.gradle文件的配置
D:\WORK\myLearningWork\development\storetest\android\app\build.gradle

    defaultConfig {// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).applicationId "com.example.storetest"// You can update the following values to match your application needs.// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.minSdkVersion flutter.minSdkVersiontargetSdkVersion flutter.targetSdkVersionversionCode flutterVersionCode.toInteger()versionName flutterVersionName}

将minSdkVersion 改为19即可。

    defaultConfig {// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).applicationId "com.example.storetest"// You can update the following values to match your application needs.// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.minSdkVersion 19targetSdkVersion flutter.targetSdkVersionversionCode flutterVersionCode.toInteger()versionName flutterVersionName}

gradle文件介绍

在Android开发中,build.gradle是一个重要的配置文件,用于定义和管理项目的构建过程。每个Android项目都包含一个或多个build.gradle文件,其中最重要的是项目级别的build.gradle和模块级别的build.gradle。

项目级别的build.gradle

项目级别的build.gradle文件位于项目的根目录下,它用于配置整个项目的构建设置和依赖项。以下是一个典型的项目级别的build.gradle文件的示例:

// Top-level build file where you can add configuration options common to all sub-projects/modules.// 构建脚本的版本
buildscript {repositories {google()jcenter()}dependencies {classpath 'com.android.tools.build:gradle:4.2.2' // Gradle 插件版本}
}// 应用插件
apply plugin: 'com.android.application'android {compileSdkVersion 30 // 编译目标版本buildToolsVersion "30.0.3" // 构建工具版本defaultConfig {applicationId "com.example.myapp" // 应用程序IDminSdkVersion 21 // 最低支持的Android版本targetSdkVersion 30 // 目标Android版本versionCode 1 // 版本代码versionName "1.0" // 版本名称}buildTypes {release {// 发布版本的构建配置minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}// 依赖项配置dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'androidx.appcompat:appcompat:1.3.1'implementation 'com.google.android.material:material:1.4.0'implementation 'androidx.constraintlayout:constraintlayout:2.1.0'}
}

上述示例中的build.gradle文件包含了以下几个重要部分:

  • buildscript:用于定义构建脚本的依赖项。在这个块中,你可以声明Gradle插件的版本以及其他需要的仓库位置。
  • apply plugin:应用插件,这里使用的是com.android.application插件,表示这是一个Android应用项目。
  • android:Android构建配置的主要部分,用于定义编译版本、构建工具版本、应用程序ID、最低支持的Android版本、目标Android版本等。
  • defaultConfig:默认的构建配置,包括应用程序ID、版本代码、版本名称等。
  • buildTypes:定义不同构建类型的配置,例如release和debug。可以在这里配置构建选项,如是否启用代码混淆等。
  • dependencies:定义项目的依赖项,包括本地库(如jar文件)和远程库(如AndroidX库)。

模块级别的build.gradle

模块级别的build.gradle文件位于每个模块的目录下,用于配置该模块的构建设置和依赖项。以下是一个典型的模块级别的build.gradle文件的示例:

plugins {id 'com.android.library'
}android {compileSdkVersion 30buildToolsVersion "30.0.3"defaultConfig {minSdkVersion 21targetSdkVersion 30versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}// 依赖项配置dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'androidx.appcompat:appcompat:1.3.1'implementation 'com.google.android.material:material:1.4.0'implementation 'androidx.constraintlayout:constraintlayout:2.1.0'}
}

模块级别的build.gradle文件与项目级别的build.gradle文件相似,但通常不包含buildscript块。它包含了与项目级别的build.gradle文件相同的配置项,如android和dependencies块,用于配置模块的构建设置和依赖项。

总结

总结来说,build.gradle文件是Android开发中用于定义和管理项目的构建过程的关键配置文件。项目级别的build.gradle文件用于配置整个项目的构建设置和依赖项,而模块级别的build.gradle文件用于配置每个模块的构建设置和依赖项。通过修改这些文件,开发人员可以自定义和控制Android应用的构建过程。

这篇关于Flutter开发报错uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/212300

相关文章

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte