React native 反应本机运行android Vs./gradlew assembleDebug

React native 反应本机运行android Vs./gradlew assembleDebug,react-native,react-native-android,React Native,React Native Android,我注意到react native和gradle在构建android版本时有两种不同的输出 react native build似乎包含了一些来自插件的预构建工作,如react native config 如果没有要安装的设备,react native将在生成时失败(在我的例子中是emulator) 不同的构建成功输出,尤其是在我的情况下错误类型3 安装-react native仅限 问题 除了安装部分(4),为什么这两个命令的构建部分不同 样本输出 react本地运行android $ reac

我注意到react native和gradle在构建android版本时有两种不同的输出

  • react native build似乎包含了一些来自插件的预构建工作,如
    react native config
  • 如果没有要安装的设备,react native将在生成时失败(在我的例子中是emulator)
  • 不同的
    构建成功
    输出,尤其是在我的情况下
    错误类型3
  • 安装-
    react native
    仅限
  • 问题

    除了安装部分(4),为什么这两个命令的构建部分不同

    样本输出 react本地运行android

    $ react-native run-android
    Scanning folders for symlinks in /Users/Jackson/Sites/fnmultiapptest/node_modules (10ms)
    JS server already running.
    Building and installing the app on the device (cd android && ./gradlew installDebug)...
    
    > Configure project :app 
    Reading env from: .env
    WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
    It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
    Observed package id 'build-tools;20.0.0' in inconsistent location '/Users/Jackson/.android/build-tools/android-4.4W' (Expected '/Users/Jackson/.android/build-tools/20.0.0')
    
    > Configure project :react-native-config 
    WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
    It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
    
    > Task :react-native-config:installDebugAndroidTest 
    11:40:14 V/ddms: execute: running am get-config
    11:40:14 V/ddms: execute 'am get-config' on 'emulator-5554' : EOF hit. Read: -1
    11:40:14 V/ddms: execute: returning
    Installing APK 'react-native-config-debug-androidTest.apk' on 'Nexus_5X_API_26(AVD) - 8.0.0' for react-native-config:debugAndroidTest
    11:40:14 D/react-native-config-debug-androidTest.apk: Uploading react-native-config-debug-androidTest.apk onto device 'emulator-5554'
    11:40:14 D/Device: Uploading file onto device 'emulator-5554'
    11:40:14 D/ddms: Reading file permision of /Users/Jackson/Sites/fnmultiapptest/node_modules/react-native-config/android/build/outputs/apk/androidTest/debug/react-native-config-debug-androidTest.apk as: rw-r--r--
    11:40:14 V/ddms: execute: running pm install -r -t "/data/local/tmp/react-native-config-debug-androidTest.apk"
    11:40:15 V/ddms: execute 'pm install -r -t "/data/local/tmp/react-native-config-debug-androidTest.apk"' on 'emulator-5554' : EOF hit. Read: -1
    11:40:15 V/ddms: execute: returning
    11:40:15 V/ddms: execute: running rm "/data/local/tmp/react-native-config-debug-androidTest.apk"
    11:40:15 V/ddms: execute 'rm "/data/local/tmp/react-native-config-debug-androidTest.apk"' on 'emulator-5554' : EOF hit. Read: -1
    11:40:15 V/ddms: execute: returning
    Installed on 1 device.
    
    
    BUILD SUCCESSFUL in 2s
    38 actionable tasks: 1 executed, 37 up-to-date
    Running /Users/Jackson/.android/platform-tools/adb -s emulator-5554 reverse tcp:8081 tcp:8081
    Starting the app on emulator-5554 (/Users/Jackson/.android/platform-tools/adb -s emulator-5554 shell am start -n com.workingproject/com.workingproject.MainActivity)...
    Starting: Intent { cmp=com.workingproject/.MainActivity }
    Error type 3
    Error: Activity class {com.workingproject/com.workingproject.MainActivity} does not exist.
    
    /gradlew assembleDebug

    $ ./gradlew assembleDebug
    
    > Configure project :app 
    Reading env from: .env
    WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
    It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
    
    > Configure project :react-native-config 
    WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
    It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
    
    
    BUILD SUCCESSFUL in 0s
    50 actionable tasks: 50 up-to-date
    

    据我说,你在比较两件不同的事情。


  • react原生运行android

    它执行cd android&&./gradlew installDebug(可在打印日志中看到),专门用于安装已构建和已签名的apk,或构建apk并立即将其安装到运行的模拟器或连接的设备上。
    由于安装不成功,它会抛出错误

  • /gradlew assembleDebug

    另一方面,
    /gradlew assembleDebug
    这仅用于构建应用程序。(这意味着您可以使用此命令构建调试APK。)当调试APK成功创建时,将显示消息“build SUCCESSFUL”



  • 根据我的说法,你在比较两种不同的东西。


  • react原生运行android

    它执行cd android&&./gradlew installDebug(可在打印日志中看到),专门用于安装已构建和已签名的apk,或构建apk并立即将其安装到运行的模拟器或连接的设备上。
    由于安装不成功,它会抛出错误

  • /gradlew assembleDebug

    另一方面,
    /gradlew assembleDebug
    这仅用于构建应用程序。(这意味着您可以使用此命令构建调试APK。)当调试APK成功创建时,将显示消息“build SUCCESSFUL”



  • react native run android
    包含命令
    /gradlew installDebug

    /gradlew installDebug
    用于将apk推送到设备,而
    /gradlew assembleDebug
    仅用于构建apk

    如果必须从一个角度来看,可以说
    /gradlew assembleDebug
    /gradlew installDebug
    执行的进程的子集

    因此,本质上如果我必须列出,由运行android的
    react native执行的进程包括-

  • 启动metro包绑定器,它将侦听所有js更改
  • 使用
    /gradlew installDebug
  • 检查可用的设备,如果没有,则在此处失败
  • 如果成功,它将在设备上安装apk,您可以从您向我们展示的日志中读取相同的内容
  • 最后,它执行
    反向tcp:8081 tcp:8081
    ,将metro捆绑程序连接到应用程序模拟器/设备
  • /gradlew assembleDebug
    只是构建了apk。没别的了

    希望有帮助:)


    PS:如果仔细检查,
    react native run android
    的构建部分是成功的,因此您可以看到
    build successful
    输出,但由于其他进程失败,因此它作为一个整体命令失败。

    react native run android
    包含命令
    /gradlew installDebug

    /gradlew installDebug
    用于将apk推送到设备,而
    /gradlew assembleDebug
    仅用于构建apk

    如果必须从一个角度来看,可以说
    /gradlew assembleDebug
    /gradlew installDebug
    执行的进程的子集

    因此,本质上如果我必须列出,由运行android的
    react native执行的进程包括-

  • 启动metro包绑定器,它将侦听所有js更改
  • 使用
    /gradlew installDebug
  • 检查可用的设备,如果没有,则在此处失败
  • 如果成功,它将在设备上安装apk,您可以从您向我们展示的日志中读取相同的内容
  • 最后,它执行
    反向tcp:8081 tcp:8081
    ,将metro捆绑程序连接到应用程序模拟器/设备
  • /gradlew assembleDebug
    只是构建了apk。没别的了

    希望有帮助:)

    PS:如果仔细检查,
    react native run android
    的构建部分是成功的,因此您可以看到
    build successful
    输出,但是由于其他进程失败,它作为一个整体命令失败