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

Flutter AndroidManifest.xml报错:包标识或启动Activity未找到

解决Flutter Android项目中AndroidManifest.xml相关启动错误

错误提示

package identifier or launch activity not found. Please check /Users/[user]/AndroidStudioProjects/[project]/android/app/src/main/AndroidManifest.xml for errors.
No application found for TargetPlatform.android_arm64.
Is your project missing an android/app/src/main/AndroidManifest.xml? Consider running "flutter create ." to create one.

我的AndroidManifest.xml配置

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.webjow.hidden_gallery"
    xmlns:tools="http://schemas.android.com/tools">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        android:maxSdkVersion="32"
        tools:ignore="ScopedStorage" />
    <uses-permission
        android:name="android.permission.READ_EXTERNAL_STORAGE"
        android:maxSdkVersion="32" />

    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />

    <uses-permission android:name="android.permission.USE_BIOMETRIC" />
    <uses-permission android:name="com.google.android.gms.permission.AD_ID" />

    <application
        android:name="androidx.multidex.MultiDexApplication"
        android:allowBackup="false"
        android:fullBackupContent="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:manageSpaceActivity=".MainActivity"
        android:requestLegacyExternalStorage="true"
        android:usesCleartextTraffic="true"
        tools:replace="android:label"
        tools:targetApi="34">

        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxx~xxxxxxxxxx"/>

        <activity
            android:name=".MainActivity"
            android:theme="@style/LaunchTheme" />

        <activity-alias
            android:name="OneLauncherAlias"
            android:enabled="true"
            android:exported="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:targetActivity=".MainActivity"
            android:theme="@style/LaunchTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

        <activity-alias
            android:name="TwoLauncherAlias"
            android:enabled="false"
            android:exported="true"
            android:icon="@mipmap/calculator"
            android:label="@string/app_name_fake"
            android:targetActivity=".MainActivity"
            android:theme="@style/LaunchTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>

补充信息:Flutter版本 3.13.5,Dart版本 3.1.2

可能的原因及排查修复步骤

1. Flutter工具无法识别activity-alias作为启动入口

Flutter的启动检测逻辑优先查找带有MAIN/LAUNCHER intent-filter的<activity>,而非<activity-alias>,即使Android系统支持该配置,Flutter工具也可能无法正确解析。

  • 修复:给MainActivity添加临时intent-filter测试启动:
    <activity
        android:name=".MainActivity"
        android:theme="@style/LaunchTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
    启动成功后,再移除临时filter,保留activity-alias配置,多数场景下Flutter会自动适配。

2. 项目构建缓存过期

旧的构建缓存会导致Flutter无法读取最新的Manifest配置。

  • 修复:
    • 执行清理命令:flutter clean
    • 删除Android端构建缓存:手动删除android/app/build和android/build目录
    • 重新构建项目:flutter pub get && flutter run

3. 架构目标不匹配

错误提示提到TargetPlatform.android_arm64,可能是本地设备/模拟器架构与项目配置冲突。

  • 修复:
    • 检查android/app/build.gradle中的ndk.abiFilters配置,确保包含arm64-v8a:
      android {
          defaultConfig {
              ndk {
                  abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
              }
          }
      }
      
    • 切换到arm64架构的模拟器,或在真实arm64设备上测试。

4. Manifest文件路径或权限问题

Flutter工具可能因路径错误或权限不足无法读取Manifest文件。

  • 修复:
    • 确认Manifest文件路径确实为android/app/src/main/AndroidManifest.xml,无拼写错误
    • 在Mac/Linux上执行命令修复文件权限:chmod -R 755 android/app/src/main/

5. MultiDex配置不完整

项目使用了MultiDexApplication,但未正确启用MultiDex支持。

  • 修复:
    • 在android/app/build.gradle中配置MultiDex:
      android {
          defaultConfig {
              multiDexEnabled true
          }
      }
      dependencies {
          implementation 'androidx.multidex:multidex:2.0.1'
      }
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 16:30:16