블루투스를 사용하여 통신하는 앱에 대한 flutter 프로젝트를 시작하려고했습니다. 이를 위해 flutter blue를 사용했습니다 .
불행히도 (Android 장치에서) 처음 만든 예제를 실행하려고 할 때 다음 오류가 발생했습니다.
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)
내가 Android Studio에 있었다면 Android minSdkVersion을 높이는 방법을 알고 있었지만 flutter 프로젝트 (VSCode 사용)에서는 약간 길을 잃었습니다.
flutter로 minSdkVersion을 늘릴 수 있습니까?
답변
실제로 minSdkVersion을 늘릴 수는 있지만 Google 검색은 대부분의 결과 토론이 절대 최소 Sdk 버전 flutter가 지원할 수 있어야하므로 자신의 프로젝트에서이를 늘리는 방법이 아니기 때문에 찾는 데 너무 많은 시간이 걸렸습니다. .
Android Studio 프로젝트에서와 마찬가지로 build.gradle
파일 을 편집해야 합니다. flutter 프로젝트에서는 경로에 ./android/app/build.gradle
있습니다.
변경해야하는 매개 변수는 물론 minSdkVersion 16
필요한 값 (이 경우 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"
}
지금은 당연해 보이지만 스스로 알아내는 데 시간이 오래 걸렸습니다.
답변
당신은을 변경할 수 있습니다 minSdkVersion
파일에 Project_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"
}
답변
minSdkVersion
문제 를 변경하려면 다음 단계를 따르십시오 .
먼저 => YouProject_name/android/app/build.gradle
Second => defaultconfig {// 내부에서 찾을 수 있습니다 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
}
답변
내 flutter 앱에서 Auth0, flutter_appauth 및 flutter_secure_storage를 설정하는 데이 문제가 발생했습니다. minSdkVersion 버전을 변경 한 후이 오류가 발생했습니다.
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.
- 문제 : ‘: app : processDebugManifest’작업에 대한 실행이 실패했습니다.
매니페스트 병합 실패 : AndroidManifest.xml의 속성 data @ scheme에는 자리 표시 자 대체가 필요하지만에 대한 값이 제공되지 않습니다.
해결책은 manifestPlaceholders를 추가하는 것입니다.
답변
앱에 Android 플랫폼의 특정 최소 버전이 필요한 경우 해당 버전 요구 사항을 앱 build.gradle
파일 의 API 수준 설정으로 지정할 수 있습니다 . 빌드 프로세스 중에 이러한 설정은 앱의 매니페스트 파일에 병합됩니다. API 레벨 요구 사항을 지정하면 호환되는 Android 플랫폼 버전을 실행하는 기기에만 앱을 설치할 수 있습니다.
당신은 설정 할 필요가 minSdkVersion
있는 build.gradle
파일에 위치를 <app dir>/android/app
하고에 값 설정 defaultConfig
블록 :
두 가지 API 수준 설정을 사용할 수 있습니다.
minSdkVersion
— 플랫폼의 API 수준 식별자로 지정된 앱이 실행될 Android 플랫폼의 최소 버전입니다.targetSdkVersion
— 앱이 실행되도록 설계된 API 수준을 지정합니다. 경우에 따라 앱이 최소 API 수준에 정의 된 항목 만 사용하도록 제한되는 대신 대상 API 수준에 정의 된 매니페스트 요소 또는 동작을 사용할 수 있습니다.
build.gradle
파일 에서 기본 API 레벨 요구 사항을 지정하려면 위의 설정 중 하나 이상을 defaultConfig {}
블록 내에 중첩 된 android {}
블록에 추가하십시오. 빌드 유형 또는 제품 버전에 설정을 추가하여 앱의 여러 버전에 대해 이러한 기본값을 재정의 할 수도 있습니다. 다음 build.gradle
파일 은 블록의 기본값 minSdkVersion
및 targetSdkVersion
설정을 지정 하고 하나의 제품 버전을 defaultConfig {}
대체 minSdkVersion
합니다.
android {
compileSdkVersion 29
...
defaultConfig {
applicationId "com.app.yourapp”
minSdkVersion 16
targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
productFlavors {
main {
...
}
afterLollipop {
...
minSdkVersion 21
}
}
}
자세한 내용은 uses-sdk-element 매니페스트 요소 문서 및 API 수준 문서를 참조하세요.