Próbowałem rozpocząć trzepoczący projekt dla aplikacji używającej do komunikacji Bluetooth. Do tego użyłem flutter blue .
Niestety podczas próby uruchomienia (na urządzeniu z systemem Android) pierwszego utworzonego przeze mnie przykładu napotkałem następujący błąd:
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)
Gdybym był na Android Studio, wiedziałbym, jak podbić minSdkVersion Androida, ale w projekcie flutter (używając VSCode) byłem trochę zagubiony.
Czy można zwiększyć minSdkVersion za pomocą fluttera i jak?
źródło
android/
i nie mogłem wymyślić do końca życia, jak zaktualizować tę minSdkVersion.Można zmienić
minSdkVersion
w plikuProject_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" }
źródło
Wykonaj poniższe czynności, aby zmienić
minSdkVersion
problem.First =>
YouProject_name/android/app/build.gradle
Second => defaultconfig {// znajdziesz to w środku
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 }
źródło
Jeśli Twoja aplikacja wymaga określonej minimalnej wersji platformy Android, możesz określić to wymaganie wersji jako ustawienia poziomu interfejsu API w
build.gradle
pliku aplikacji . Podczas procesu kompilacji te ustawienia są scalane z plikiem manifestu aplikacji. Określenie wymagań na poziomie interfejsu API gwarantuje, że aplikację można zainstalować tylko na urządzeniach z kompatybilną wersją platformy Android.Musisz zrobić set
minSdkVersion
inbuild.gradle
file, znajdujący się w<app dir>/android/app
i ustawić wartość wdefaultConfig
bloku:Dostępne są dwa ustawienia poziomu interfejsu API:
minSdkVersion
- Minimalna wersja platformy Android, na której będzie działać aplikacja, określona przez identyfikator poziomu interfejsu API platformy.targetSdkVersion
- Określa poziom interfejsu API, na którym aplikacja ma działać. W niektórych przypadkach pozwala to aplikacji na użycie elementów manifestu lub zachowań zdefiniowanych na docelowym poziomie interfejsu API, zamiast ograniczać się do używania tylko tych zdefiniowanych dla minimalnego poziomu interfejsu API.Aby określić domyślne wymagania poziomu interfejsu API w
build.gradle
pliku, dodaj co najmniej jedno z powyższych ustawień dodefaultConfig {}
bloku, zagnieżdżonego wandroid {}
bloku. Możesz również zastąpić te wartości domyślne dla różnych wersji aplikacji, dodając ustawienia do typów kompilacji lub smaków produktów. Poniższybuild.gradle
plik określa wartości domyślneminSdkVersion
itargetSdkVersion
ustawienia wdefaultConfig {}
bloku oraz nadpisaniaminSdkVersion
dla jednego smaku produktu.android { compileSdkVersion 29 ... defaultConfig { applicationId "com.app.yourapp” minSdkVersion 16 targetSdkVersion 29 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } productFlavors { main { ... } afterLollipop { ... minSdkVersion 21 } } }
Aby uzyskać więcej informacji, zobacz dokumentację elementu manifestu uses-sdk-element i dokument poziomów interfejsu API .
źródło