React Native应用在Android 13崩溃,Android 11运行正常
问题描述
React Native应用在Android 13系统上启动崩溃,但Android 11系统可正常运行,Android Studio中报错如下:
Error while executing: am start -n "package.name.of.my.app.callerid_test/package.name.of.my.app.callerid.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=ppackage.name.of.my.app.callerid_test/package.name.of.my.app.callerid.MainActivity }
Error type 3
Error: Activity class {package.name.of.my.app.callerid_test/package.name.of.my.app.callerid.MainActivity} does not exist.Error while Launching activity
Failed to launch an application on all devices
解决步骤
1. 核对包名与Activity路径一致性
- 打开
android/app/src/main/AndroidManifest.xml,确认MainActivity的完整类名和启动Intent中的路径完全匹配,检查是否存在构建变种导致的包名后缀(比如_test)不一致问题。 - 同步
AndroidManifest.xml中的package属性与android/app/build.gradle里的applicationId,确保两者统一。
2. 清理并重建项目
- 执行React Native项目清理:
npx react-native clean - 进入Android目录清理构建缓存:
cd android && ./gradlew clean - 重新构建运行:
npx react-native run-android
3. 适配Android 13的Activity配置要求
Android 12及以上版本对启动Activity有强制配置要求,确保MainActivity在Manifest中正确设置:
<activity android:name=".MainActivity" android:exported="true" <!-- 必须添加,Android 12+强制要求 --> android:launchMode="singleTask" android:theme="@style/LaunchTheme" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:windowSoftInputMode="adjustResize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
4. 检查构建变种配置
在Android Studio的Build Variants面板查看当前选中的构建变种,确认其applicationId与报错中的包名一致,避免因变种配置差异导致路径不匹配。
5. 卸载设备残留应用
先卸载设备上已安装的该应用,清除可能存在的包名冲突,再重新构建安装。
内容的提问来源于stack exchange,提问作者Engr.Aftab Ufaq

