You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何用tools:overrideLibrary="io.flutter.plugins.camera"强制使用相机插件?

正确配置Flutter Camera插件的两种方案

刚好我之前也处理过这个问题,给你分两种场景来说明,优先推荐第一种,第二种是万不得已才考虑的:

1. 官方推荐:升级minSdkVersion到21

Camera插件从较新版本开始,已经要求最低SDK版本为21,这是最稳妥的方案,完全不会有运行时崩溃的风险。配置步骤很简单:

  • 打开Flutter项目中的 android/app/build.gradle 文件
  • 找到 defaultConfig 代码块,把 minSdkVersion 的值修改为21:
defaultConfig {
    applicationId "com.your.app.id"
    minSdkVersion 21 // 这里改成21
    targetSdkVersion 33
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
}
  • 同步Gradle配置,重新运行项目就可以正常使用Camera插件了。

2. 强制兼容低版本(不推荐)

如果因为业务需求必须保留低于21的minSdkVersion,才考虑使用tools:overrideLibrary来绕过版本检查,但一定要注意:这种方式可能会导致Android 20及以下设备运行时崩溃,必须做好对应设备的兼容性测试。配置步骤如下:

  • 打开 android/app/src/main/AndroidManifest.xml 文件
  • 首先在根标签manifest中添加tools命名空间,然后在application标签里加入tools:overrideLibrary属性,指定Camera插件的包名:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" <!-- 新增这个命名空间 -->
    package="com.your.app.id">

    <application
        tools:overrideLibrary="io.flutter.plugins.camera" <!-- 强制兼容插件 -->
        android:label="Your App Name"
        android:icon="@mipmap/ic_launcher">
        <!-- 你的其他Manifest配置内容 -->
    </application>
</manifest>
  • 同步Gradle后重新运行项目,但再次提醒:只有当你明确不需要支持Android 20及以下设备,或者能接受这些设备上的崩溃风险时,才用这个方案。

内容的提问来源于stack exchange,提问作者Mahesh Jamdade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:01:49