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测试启动:
启动成功后,再移除临时filter,保留activity-alias配置,多数场景下Flutter会自动适配。<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>
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/
- 确认Manifest文件路径确实为
5. MultiDex配置不完整
项目使用了MultiDexApplication,但未正确启用MultiDex支持。
- 修复:
- 在
android/app/build.gradle中配置MultiDex:android { defaultConfig { multiDexEnabled true } } dependencies { implementation 'androidx.multidex:multidex:2.0.1' }
- 在
内容的提问来源于stack exchange,提问作者Faiz
相关产品推荐
相关产品推荐

