我接手了一个用React Native写的项目,但这个项目有点奇怪,我可以生成apk来安装,但使用npx react-native run-android
会得到Error: Activity class {com.xxx.xxx/com.xxx.xxx.MainActivity} does not exist.
其实这个文件是不存在的,我也查了一些资料,但是对我没有帮助,然后我用npx react-native run-android --appId com.ooo.ooo
,结果会出现Error: Activity class {com.ooo.ooo/com.xxx.xxx.MainActivity} does not exist.
即使前面的id是正确的,它仍然会导致一个不存在的MainActivity。
1条答案
按热度按时间tjvv9vkg1#
如果项目使用的是带有不同appId或后缀的flavors/variants,那么(经过大量的惊愕和研究后,我才知道)需要在launch命令中说明。
例如,如果
applicationId="com.example.myapp"
(假设在RN 0.70+中,你也有namespace="com.example.myapp"
),加上android/app/build.gradle
:那么您将看到的错误并没有考虑到默认的
react-native run-android
命令,它将显示如下内容:我本以为使用
react-native run-android --variant 'devDebug'
的变体选项就能解释这一点,但显然不是。因此,只需修改您的命令/脚本,将其称为
react-native run-android --variant 'devDebug' --appIdSuffix 'dev'
,然后它应该启动并成功响应:当然,根据您的具体配置进行调整。
真希望我几个小时前就意识到了这个问题。