我的 React Native 应用程序有 3 个版本:App1、App2、App3。其中每一个都有一个开发和生产版本。
我在 android/app/build.gradle 中进行了如下设置:
flavorDimensions "client", "backend"
productFlavors {
app1 {
applicationId="com.app1name"
dimension "client"
}
app2 {
applicationId="com.app2name"
dimension "client"
}
app3 {
applicationId="com.app3name"
dimension "client"
}
dev {
dimension "backend"
}
prod {
dimension "backend"
}
}
}
然后我设置了 android/app/src 文件夹,如下所示:
src
-- main
-- assets
-- java
-- com
-- app1name
MainActivity.java
MainApplication.java
-- res
AndroidManifest.xml
但我不确定将其他应用程序文件夹放在哪里,而且我尝试的任何方法似乎都不起作用。我试过了:
src
-- app2name
-- assets
-- java
-- com
MainActivity.java
MainApplication.java
-- res
AndroidManifest.xml
(对于 app3 也是如此)
我试过了:
src
-- main
-- assets
-- java
-- com
-- app2name
-- assets
-- java
-- com
MainActivity.java
MainApplication.java
-- res
AndroidManifest.xml
-- res
AndroidManifest.xml
我确保每个 AndroidManifest.xml/MainActivity.java/MainApplication.java 在顶部都有正确的包名称。
但是,当我尝试运行 app1name 时出现以下错误(它可以构建和安装):
Starting: Intent { cmp=com.app2name/.MainActivity }
Error type 3
Error: Activity class {com.app2name/com.app2name.MainActivity} does not exist.
所以看起来好像它正在尝试启动 app1,但由于某种原因也在寻找 app2 中的主要活动,我不明白它为什么这样做。
我究竟做错了什么?