android React Native错误类型3:活动类{...}不存在

pdkcd3nj  于 2023-05-05  发布在  Android
关注(0)|答案(1)|浏览(170)

我接手了一个用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。

tjvv9vkg

tjvv9vkg1#

如果项目使用的是带有不同appId或后缀的flavors/variants,那么(经过大量的惊愕和研究后,我才知道)需要在launch命令中说明。
例如,如果applicationId="com.example.myapp"(假设在RN 0.70+中,你也有namespace="com.example.myapp"),加上android/app/build.gradle

flavorDimensions "build"
    productFlavors {
        dev {
            dimension "build"
            applicationIdSuffix ".dev"
        }
    }

那么您将看到的错误并没有考虑到默认的react-native run-android命令,它将显示如下内容:

Error type 3 
Error: Activity class
{com.example.myapp/com.example.myapp.MainActivity} does not exist.

我本以为使用react-native run-android --variant 'devDebug'的变体选项就能解释这一点,但显然不是。
因此,只需修改您的命令/脚本,将其称为react-native run-android --variant 'devDebug' --appIdSuffix 'dev',然后它应该启动并成功响应:

Starting: Intent { cmp=com.example.myapp.dev/com.example.myapp.MainActivity }

当然,根据您的具体配置进行调整。
真希望我几个小时前就意识到了这个问题。

相关问题