如何为Flutter应用启用ChromeOS支持?添加配置后构建未生效
解决Flutter构建AppBundle后AndroidManifest未包含指定uses-feature的问题
确认
<uses-feature>的放置位置
确保你把这段代码放在<manifest>标签内部、<application>标签外部,正确结构如下:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.your.package"> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> <application android:label="Your App" android:icon="@mipmap/ic_launcher"> <!-- 应用内容 --> </application> </manifest>若放在
<application>内,构建时会被忽略,导致配置不生效。清理构建缓存后重新构建
旧的构建缓存可能覆盖你的Manifest修改,执行以下命令清理并重新生成AppBundle:flutter clean flutter build appbundle通过Gradle直接声明uses-feature
如果Manifest合并机制未生效,可直接在android/app/build.gradle的defaultConfig块中添加声明,这是更可靠的方式:android { defaultConfig { // 其他配置... usesFeature("android.hardware.touchscreen", false) } }Android Gradle插件会自动将该声明合并到最终的AndroidManifest中。
验证最终生成的Manifest内容
直接查看build目录临时文件可能不准确,建议用bundletool解压AppBundle确认:- 执行命令生成APKs包:
bundletool build-apks --bundle=./build/app/outputs/bundle/release/app-release.aab --output=app.apks - 解压APKs包:
unzip app.apks -d app-apks - 查看
app-apks/base/manifest/AndroidManifest.xml文件,确认<uses-feature>是否存在。
- 执行命令生成APKs包:
内容的提问来源于stack exchange,提问作者mjdk99
相关产品推荐
相关产品推荐

