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

Flutter项目AndroidManifest.xml报错:8个属性错误+1个未解析类错误

问题

我在Android Studio(Build #AI 231.9392.1.2311.11330709,2024年1月19日构建)里开发Flutter 3.29.0项目,给app/src/main/AndroidManifest.xml添加权限后,出现9个错误——8个属性不允许的错误,还有1个未解析类'MainActivity'的错误。这是我第一次用Flutter和Android Studio开发,附上相关代码和错误信息,求解决办法。

相关代码片段

<application
    android:label="thefingerofhope"
    android:icon="@mipmap/ic_launcher">

    <!-- Main Activity -->
    <activity
        android:name=".MainActivity"
        android:exported="true"
        android:launchMode="singleTop"
        android:taskAffinity=""
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">

        <!-- Intent filter for launching the app -->
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

    <!-- Flutter embedding meta-data -->
    <meta-data
        android:name="flutterEmbedding"
        android:value="2" />

</application>

<!-- Queries for processing text -->
<queries>
    <intent>
        <action android:name="android.intent.action.PROCESS_TEXT"/>
        <data android:mimeType="text/plain"/>
    </intent>
</queries>

错误信息

  • android:icon属性不允许在此处使用
  • 未解析类'MainActivity'
  • android:launchMode属性不允许在此处使用
  • android:taskAffinity属性不允许在此处使用
  • android:theme属性不允许在此处使用
  • android:configChanges属性不允许在此处使用
  • android:hardwareAccelerated属性不允许在此处使用
  • android:windowSoftInputMode属性不允许在此处使用
  • android:mimeType属性不允许在此处使用
解决方法

这些错误大多是AndroidManifest.xml的结构或命名空间问题,按以下步骤逐一修复:

  1. 补全根标签的Android命名空间
    所有android:开头的属性报错,核心原因是<manifest>根标签没声明Android命名空间。打开你的AndroidManifest.xml,确保最顶部的根标签是这样的:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.your.package.name">
        <!-- 这里放你的application、queries等内容 -->
    </manifest>
    

    把com.your.package.name换成你项目的实际包名(可以在pubspec.yaml里找到name字段,或者看MainActivity文件的包名)。加上这个命名空间后,所有属性不允许的错误都会消失。

  2. 修复MainActivity未解析的问题

    • 先检查项目里是否存在MainActivity.java或MainActivity.kt,路径是app/src/main/java/[你的包名]/下。如果没有,运行flutter clean然后flutter run,Flutter会自动生成这个文件。
    • 如果文件存在,检查android:name=".MainActivity"是否正确:点号开头代表相对manifest里package属性的路径。如果MainActivity在子目录(比如ui文件夹),要改成.ui.MainActivity,或者直接写完整类名com.example.thefingerofhope.MainActivity。
  3. 确认queries标签的位置
    你的<queries>标签放在</application>之后是合法的,但必须确保它在<manifest>根标签内部,不能放在manifest外面。只要补全了命名空间,这个标签里的android:mimeType错误也会跟着解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:13:19