【问题标题】:React Native Android with multiple flavors does not start its Activity具有多种风格的 React Native Android 不会启动其 Activity
【发布时间】:2020-07-27 17:04:45
【问题描述】:

构建白标应用程序。一个具有多种 android 风格和 iOS 目标的 react-native 源。

一切都在构建并正确安装,但应用程序在调试中无法启动,并且无法在智能手机和模拟器中启动。

BUILD SUCCESSFUL in 1m 5s
258 actionable tasks: 258 executed
info Connecting to the development server...
info Starting the app on "0039227690"...
Starting: Intent { cmp=com.xxx.A/com.xxx.MainActivity }
Error type 3
Error: Activity class {com.xxx.A/com.xxx.MainActivity} does not exist.

用尽了我的选择。需要一些光线。

react-native@0.63.2

主要关注那些伟大的文章: https://medium.com/flawless-app-stories/react-native-white-label-101-163c1967c12a https://medium.com/@najera.sean/react-native-white-label-102-aba9c56f385c

\android\app\BUCK

android_build_config(
  name = "build_config",
  package = "com.xxx",
)

android_resource(
  name = "res",
  package = "com.xxx",
  res = "src/main/res",
)

\android\app\build.gradle

defaultConfig {
    applicationId "com.xxx"
    minSdkVersion rootProject.ext.minSdkVersion
    targetSdkVersion rootProject.ext.targetSdkVersion
    versionCode 300000
    versionName "3.0.0"
}

flavorDimensions "default"
productFlavors {
    A {
        applicationIdSuffix ".A"
        resValue "string", "white_label_app_name", "A"
    }

    B {
        applicationIdSuffix ".B"
        resValue "string", "white_label_app_name", "B"
    }
}

\android\app\src\debug\java\com\xxx\ReactNativeFlipper.java

package com.xxx;

\android\app\src\A\java\com\xxx\XxxConfig.java

package com.xxx;
import com.xxx.R;

\android\app\src\B\java\com\xxx\XxxConfig.java

package com.xxx;
import com.xxx.R;

\android\app\src\main\AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.xxx">

\android\app\src\main\java\com\xxx\XxxConfigPackage.java

package com.xxx;

\android\app\src\main\java\com\xxx\MainActivity.java

package com.xxx;

\android\app\src\main\java\com\xxx\MainApplication.java

package com.xxx;

最后,我可以使用这些 npm 脚本执行构建:

"A:ios": "react-native run-ios --scheme 'A'",
"B:ios": "react-native run-ios --scheme 'B'",
"A:android": "react-native run-android --variant ADebug --appIdSuffix A",
"B:android": "react-native run-android --variant BDebug --appIdSuffix B",

编辑 1

如果我尝试从 Android Studio 运行,我会收到“找不到 MainActivity”。我正在四处寻找暗示。看起来软件包没有按应有的方式配置。

【问题讨论】:

  • 我遇到了同样的问题。你能解决吗? @tacitomv

标签: android react-native android-studio gradle react-native-android


【解决方案1】:

你可以使用:

adb shell am start -n com.myapp.beta/com.myapp.MainActivity

正如这里所解释的:https://github.com/facebook/react-native/issues/12480

【讨论】:

    猜你喜欢
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多