Sha*_*ron 4 android react-native android-flavordimension android-flavors
我的 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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我设置了 android/app/src 文件夹,如下所示:
src
-- main
-- assets
-- java
-- com
-- app1name
MainActivity.java
MainApplication.java
-- res
AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
但我不确定将其他应用程序文件夹放在哪里,而且我尝试的任何方法似乎都不起作用。我试过了:
src
-- app2name
-- assets
-- java
-- com
MainActivity.java
MainApplication.java
-- res
AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
(app3 也一样)
我尝试过:
src
-- main
-- assets
-- java
-- com
-- app2name
-- assets
-- java
-- com
MainActivity.java
MainApplication.java
-- res
AndroidManifest.xml
-- res
AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
我已确保每个 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.
Run Code Online (Sandbox Code Playgroud)
所以看起来好像它正在尝试启动 app1,但由于某种原因也在寻找 app2 中的主要活动,我不明白它为什么这样做。
我究竟做错了什么?
小智 6
要处理多个 ProductFlavours,您需要在运行命令中添加应用程序 ID 后缀或完整的应用程序 ID。
npx react-native run-android --variant=app1nameDebug --appId=com.app1name
Run Code Online (Sandbox Code Playgroud)
或者,如果您的productFlavours 中提到了appSuffixId,那么
npx react-native run-android --variant=app1nameDebug --appIdSuffix=dev
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9087 次 |
| 最近记录: |