Flutter项目可在iOS Simulator运行,Android模拟器启动报错求助
Flutter Android模拟器启动报错解决方案
错误原因
从日志可以明确看出:系统尝试把android.app.Application当作Activity实例化,这说明AndroidManifest.xml里的启动Activity配置完全错误,把Application类误设成了启动Activity的目标类。
解决步骤
修正AndroidManifest.xml配置
打开项目路径下的android/app/src/main/AndroidManifest.xml,找到带有MAIN和LAUNCHERintent-filter的<activity>标签,确保android:name指向正确的Activity类(Flutter项目默认是.MainActivity)。
错误配置示例:<activity android:name="android.app.Application"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>正确配置示例:
<activity android:name=".MainActivity" android:launchMode="singleTop" 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> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>清理缓存并重建项目
修改配置后,执行以下命令彻底清理缓存并重新构建:flutter clean flutter pub get cd android && ./gradlew clean cd .. && flutter run排查自定义Application类(如果有)
若项目中自定义了Application类,确认它继承自android.app.Application或FlutterApplication,并且仅配置在<application>标签的android:name属性中,不要放到<activity>标签里:<application android:name=".MyCustomApplication" android:label="你的应用名称" android:icon="@mipmap/ic_launcher"> <!-- Activity相关配置放在这个标签内部 --> </application>
内容的提问来源于stack exchange,提问作者Attila
相关产品推荐
相关产品推荐

