#android #flutter #kotlin
#Android #флаттер #kotlin
Вопрос:
Я хочу использовать пакет flutter ‘audioplayers’, но когда я запускаю свой код, у меня возникает эта ошибка
C:UsersUtilisateurAndroidStudioProjectsxylophone_flutterandroidappsrcdebugAndroidManifest.xml Error:
uses-sdk:minSdkVersion 16 cannot be smaller than version 23 declared in library [:audioplayers] C:UsersUtilisateurAndroidStudioProjectsxylophone_flutterbuildaudioplayersintermediateslibrary_manifestdebugAndroidManifest.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 23,
or use tools:overrideLibrary="xyz.luan.audioplayers" to force usage (may lead to runtime failures)
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 23 declared in library [:audioplayers] C:UsersUtilisateurAndroidStudioProjectsxylophone_flutterbuildaudioplayersintermediateslibrary_manifestdebugAndroidManifest.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 23,
or use tools:overrideLibrary="xyz.luan.audioplayers" to force usage (may lead to runtime failures)
И когда я меняю minSdkVersion 16
значение на 23 myApp/android/app/build.gradle
, у меня возникает другая ошибка
e: C:UsersUtilisateurAppDataLocalPubCachehostedpub.dartlang.orgaudioplayers-0.17.1androidsrcmainkotlinxyzluanaudioplayersAudioplayersPlugin.kt: (181, 52): Expecting a parameter declaration
e: C:UsersUtilisateurAppDataLocalPubCachehostedpub.dartlang.orgaudioplayers-0.17.1androidsrcmainkotlinxyzluanaudioplayersAudioplayersPlugin.kt: (231, 38): Expecting an argument
e: C:UsersUtilisateurAppDataLocalPubCachehostedpub.dartlang.orgaudioplayers-0.17.1androidsrcmainkotlinxyzluanaudioplayersByteDataSource.kt: (8, 37): Expecting a parameter declaration
e: C:UsersUtilisateurAppDataLocalPubCachehostedpub.dartlang.orgaudioplayers-0.17.1androidsrcmainkotlinxyzluanaudioplayersWrappedMediaPlayer.kt: (10, 39): Expecting a parameter declaration
e: C:UsersUtilisateurAppDataLocalPubCachehostedpub.dartlang.orgaudioplayers-0.17.1androidsrcmainkotlinxyzluanaudioplayersWrappedSoundPool.kt: (168, 32): Expecting a parameter declaration
e: C:UsersUtilisateurAppDataLocalPubCachehostedpub.dartlang.orgaudioplayers-0.17.1androidsrcmainkotlinxyzluanaudioplayersWrappedSoundPool.kt: (205, 26): Expecting an argument
e: C:UsersUtilisateurAppDataLocalPubCachehostedpub.dartlang.orgaudioplayers-0.17.1androidsrcmainkotlinxyzluanaudioplayersWrappedSoundPool.kt: (46, 77): Type inference failed. Expected type mismatch: inferred type is List<???> but MutableList<WrappedSoundPool> was expected
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':audioplayers:compileDebugKotlin'.
> Compilation error. See log for more details
Как это решить?
Комментарии:
Ответ №1:
Вам нужно отредактировать build.gradle
файл, расположенный в каталоге вашего проекта, например your_project_folderandroidappbuild.gradle
, найти и отредактировать эту строку minSdkVersion 16
, чтобы minSdkVersion 23
затем сохранить команду file use flutter clean
и запустить ее.
defaultConfig должен выглядеть следующим образом внутри файла build.gradle
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.your_package_name_here"
minSdkVersion 23
targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
Надеюсь, что приведенное выше решение будет работать.
Или лучше использовать старую версию audioplayers. Отредактируйте в своем файле pubspec.yaml
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
audioplayers: ^0.10.0
Комментарии:
1. Используйте эту версию.. аудиоплееры: ^0.10.0
2. работал и для react-native 🙂
Ответ №2:
У меня была похожая проблема, изменение версии SDK в build.gradle не решило проблему. Я просто понизил рейтинг до audioplayers: 0.17.0, обязательно удалите ^ перед 0. Это должно сработать для вас
Комментарии:
1. Это не решило проблему, которая либо в моем случае/ В нем говорится: поскольку audioplayers >= 0.16.2 <0.18.0 зависит от uuid ^ 2.2.2, а feeddy_flutter зависит от uuid ^ 3.0.4, audioplayers >= 0.16.2 <0.18.0 запрещено. Итак, поскольку feeddy_flutter зависит от audioplayers 0.17.0, решение версии не удалось. Запускаем «flutter pub get» в feeddy_flutter… ошибка получения pub (1; Итак, поскольку feeddy_flutter зависит от audioplayers 0.17.0, решение версии не удалось.)
Ответ №3:
Я добавил строки, не осознавая, что они уже есть в gradle.build, поэтому в итоге я получил:
minSdkVersion 23
targetSdkVersion 30
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
таким образом, эти два свойства, вероятно, заменяются на NULL или что-то в этом роде.
Решение: в корне проекта у вас есть локальный файл.properties, добавьте:
flutter.minSdkVersion=23
flutter.targetSdkVersion=30
Также сохраните файл gradle.build в том виде, в каком он был изначально:
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
и добавьте ниже
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
следующее:
def minSdkVersion = localProperties.getProperty('flutter.minSdkVersion')
def targetSdkVersion = localProperties.getProperty('flutter.targetSdkVersion')