использует-sdk: minSdkVersion 16 не может быть меньше версии 23, объявленной в библиотеке

#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. github.com/luanpotter/audioplayers/issues/720

Ответ №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')