uses-sdk:minSdkVersion 16 不能小于库 [:audioplayers] 中声明的版本 23

uses-sdk:minSdkVersion 16 cannot be smaller than version 23 declared in library [:audioplayers]

我正在用 flutter、dart 和 flame 创建一个简单的游戏,我的 flame 是与 flutter 相同的更新版本,

C:\Users\Users\Desktop\vcflutter\flutter_application_1\lib\Flutter Game\flutter_application_1\android\app\src\debug\AndroidManifest.xml Error:
    uses-sdk:minSdkVersion 16 cannot be smaller than version 23 declared in library [:audioplayers] C:\Users\Users\Desktop\vcflutter\flutter_application_1\lib\Flutter Game\flutter_application_1\build\audioplayers\intermediates\library_manifest\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 23,
        or use tools:overrideLibrary="xyz.luan.audioplayers" to force usage (may lead to runtime failures)

我的pubspec.yaml

version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  flame: ^0.29.0
  cupertino_icons: ^1.0.0

dev_dependencies:
  flutter_test:
    sdk: flutter

我的main.dart

import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flame/util.dart';
import 'package:flutter/services.dart';
import 'package:flutter_application_1/langaw-game.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  Util flameUtil = Util();
  await flameUtil.fullScreen();
  await flameUtil.setOrientation(DeviceOrientation.portraitUp);

  LangawGame game = LangawGame();
  runApp(game.widget);
}

langaw-game.dart

import 'dart:ui';
import 'package:flame/game.dart';

class LangawGame extends Game {
  Size screenSize;
  double tileSize;
  @override
  void render(Canvas canvas) {
    Rect bgRect = Rect.fromLTWH(0, 0, screenSize.width, screenSize.height);
    Paint bgPaint = Paint();
    bgPaint.color = Color(0xff576574);
    canvas.drawRect(bgRect, bgPaint);
  }

  @override
  void update(double t) {}
  @override
  void resize(Size size) {
    super.resize(size);
    screenSize = size;
    tileSize = screenSize.width / 9;
  }
}

我在 youtube 中关注此文档 https://www.youtube.com/watch?v=N4LFV9_fLAo

在您的 gradle 文件中,只需将 minSdkVersion 更新为 23

android {
compileSdkVersion 30
defaultConfig {
    applicationId "com.oaics.customer"
    minSdkVersion 23
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"
   
}

这是一个技巧(避免标题问题)

使用

<uses-sdk tools:overrideLibrary="xyz.luan.audioplayers"/>

除此之外,将此添加到 manifest 标签:

xmlns:tools="http://schemas.android.com/tools"

文件总内容:

<!-- Generated file. Do not edit. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="nct.mobile.flutter.module"
    xmlns:tools="http://schemas.android.com/tools">
  <uses-permission android:name="android.permission.INTERNET"/>

  <!--
  Issue : https://whosebug.com/questions/66167083/uses-sdkminsdkversion-16-cannot-be-smaller-than-version-23-declared-in-library
  Docs : https://whosebug.com/questions/27095077/how-do-i-use-toolsoverridelibrary-in-a-build-gradle-file
   -->
  <uses-sdk tools:overrideLibrary="xyz.luan.audioplayers, io.flutter.plugins.pathprovider"/>

  <application tools:node="merge">
    <meta-data
      android:name="flutterProjectType"
      android:value="module" />
      <!-- Don't delete the meta-data below.
           It is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
      <meta-data
          android:name="flutterEmbedding"
          android:value="2" />
  </application>
</manifest>