Eu estava tentando iniciar um projeto de flutter para um aplicativo que usa bluetooth para se comunicar. Para isso, eu estava usando azul flutuante .
Infelizmente, ao tentar executar (em um dispositivo Android) o primeiro exemplo que criei, encontrei o seguinte erro:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:flutter_blue] /home/maldus/Projects/flutter/polmac/build/flutter_blue/intermediates/manifests/full/debug/AndroidManifest.xml as the library might be using APIs not available in 16
Suggestion: 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="com.pauldemarco.flutterblue" to force usage (may lead to runtime failures)
Se eu estivesse no Android Studio, saberia como aumentar o Android minSdkVersion, mas em um projeto de flutter (usando VSCode) eu estava um pouco perdido.
É possível aumentar minSdkVersion com flutter e como?
android
flutter
android-sdk-tools
Maldus
fonte
fonte
Respostas:
Na verdade, é possível aumentar minSdkVersion, mas demorei muito para descobrir porque as pesquisas do Google geralmente resultam em discussões sobre o mínimo absoluto de versão Sdk que o flutter deve ser capaz de suportar, e não como aumentá-lo em seu próprio projeto .
Como em um projeto do Android Studio, você deve editar o
build.gradle
arquivo. Em um projeto de vibração, ele é encontrado no caminho./android/app/build.gradle
.O parâmetro que precisa ser alterado é, claro,
minSdkVersion 16
aumentando-o para o que você precisa (neste caso 19).defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.projectname" minSdkVersion 19 //*** This is the part that needs to be changed, previously was 16 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
Parece óbvio agora, mas levei tempo suficiente para descobrir por conta própria.
fonte
android/
e não conseguia descobrir por nada como fazer para que esta minSdkVersion seja atualizada.Você pode alterar o
minSdkVersion
no arquivoProject_Name/android/app/build.gradle
,defaultconfig
:defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.projectname" minSdkVersion 16 // <--- There targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
fonte
Siga estas etapas para mudar o
minSdkVersion
problema.Primeiro =>
YouProject_name/android/app/build.gradle
Segundo => defaultconfig {// você pode encontrá-lo dentro
build.gradle
}defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.umair.product_details_using_crud" minSdkVersion 16 // here you can change minSdkVersison targetSdkVersion 28 versionCode flutterVersionCode.toInteger() versionName flutterVersionName }
fonte
Eu encontrei este problema ao configurar Auth0, flutter_appauth e flutter_secure_storage em meu aplicativo de flutter. Depois de alterar a versão de minSdkVersion, recebi este erro
C:\Users\myusername\AndroidStudioProjects\wole\android\app\src\debug\AndroidManifest.xml Error: Attribute data@scheme at AndroidManifest.xml requires a placeholder substitution but no value for <appAuthRedirectScheme> is provided. FAILURE: Build failed with an exception.
A solução é adicionar manifestPlaceholders, portanto
fonte
Se seu aplicativo requer uma versão mínima específica da plataforma Android, você pode especificar esse requisito de versão como configurações de nível de API no
build.gradle
arquivo do aplicativo . Durante o processo de construção, essas configurações são mescladas no arquivo de manifesto do seu aplicativo. Especificar requisitos de nível de API garante que seu aplicativo só possa ser instalado em dispositivos que executam uma versão compatível da plataforma Android.Você tem que fazer set
minSdkVersion
inbuild.gradle
file, localizado em<app dir>/android/app
e setar um valor nodefaultConfig
bloco:Existem duas configurações de nível de API disponíveis:
minSdkVersion
- A versão mínima da plataforma Android na qual o aplicativo será executado, especificada pelo identificador de nível de API da plataforma.targetSdkVersion
- Especifica o nível de API no qual o aplicativo foi projetado para ser executado. Em alguns casos, isso permite que o aplicativo use elementos de manifesto ou comportamentos definidos no nível de API de destino, em vez de ficar restrito a usar apenas aqueles definidos para o nível mínimo de API.Para especificar os requisitos de nível de API padrão em um
build.gradle
arquivo, adicione uma ou mais das configurações acima aodefaultConfig {}
bloco, aninhadas dentro doandroid {}
bloco. Você também pode substituir esses valores padrão para diferentes versões do seu aplicativo, adicionando as configurações para construir tipos ou variações de produto. Obuild.gradle
arquivo a seguir especifica o padrãominSdkVersion
e astargetSdkVersion
configurações nodefaultConfig {}
bloco e substituiçõesminSdkVersion
para uma variação do produto.android { compileSdkVersion 29 ... defaultConfig { applicationId "com.app.yourapp” minSdkVersion 16 targetSdkVersion 29 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } productFlavors { main { ... } afterLollipop { ... minSdkVersion 21 } } }
Para obter mais informações, consulte a documentação do elemento de manifesto uses-sdk-element e o documento Níveis API .
fonte