Expo 47升级后React Native MainActivity不存在且包名重复问题求助
Expo 47构建后无法自动启动:Activity类{org.example.app.dev/org.example.app.MainActivity}不存在
将React Native项目从Expo 45升级到Expo 47(因历史迁移问题重新搭建项目)后,通过终端构建时出现以下错误:
Starting: Intent { cmp=org.example.app.dev/org.example.app.MainActivity } Error type 3 Error: Activity class {org.example.app.dev/org.example.app.MainActivity} does not exist.
异常点在于包名被斜杠分割重复显示,前半部分是带dev后缀的产品变体名称。构建完成后应用无法自动启动,但手动点击图标可正常运行。
我已尝试以下方案:
- 修改AndroidManifest.xml中的intent配置
- 调整applicationId
- 反复检查产品变体(product flavors)和构建类型(buildTypes)
- 核对文件夹与文件层级
- 执行卸载应用、Android Studio重建、缓存清理等操作
以下是项目的AndroidManifest.xml配置:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.example.app"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> <uses-permission android:name="android.permission.USE_FINGERPRINT"/> <uses-permission android:name="android.permission.USE_BIOMETRIC"/> <uses-permission android:name="android.permission.VIBRATE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_SETTINGS"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/> <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/> <application android:name=".MainApplication" android:label="${APP_NAME}" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="true" android:theme="@style/AppTheme" android:networkSecurityConfig="@xml/network_security_config" > <meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://exp.host/@llifmobile/mobile"/> <meta-data android:name="expo.modules.updates.EXPO_SDK_VERSION" android:value="47.0.0"/> <meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/> <meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/> <meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/> <activity android:name=".SplashActivity" android:label="${APP_NAME}" android:theme="@style/SplashTheme" android:screenOrientation="portrait" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:screenOrientation="portrait" android:exported="true" android:theme="@style/Theme.App.SplashScreen"> <intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="example" android:host="app"/> </intent-filter> </activity> <activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/> </application> </manifest>
build.gradle升级后变化较大,但未发现导致包名重复的原因。我需要解决该问题,使应用构建后可自动启动,避免影响后续staging及生产环境部署,恳请各位提供建议或排查方向。
内容的提问来源于stack exchange,提问作者davkub
相关产品推荐
相关产品推荐

