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
相关产品推荐
相关产品推荐

