【问题标题】:bundleReleaseJsAndAssets during Android release builds is taking infinite timeAndroid 发布构建期间的 bundleReleaseJsAndAssets 花费了无限时间
【发布时间】:2019-09-21 04:45:50
【问题描述】:

我是一名 UI 开发人员,并且是 android、gradle 的新手,并试图弄清楚为什么调试构建运行良好而发布构建却没有。另外,如何才能弄清楚这个问题。 我升级了一个旧的 android 应用程序,其中包括从 v0.36.0 到 0.58.0 的 react native 升级并尝试构建相同的

  • 调试版本运行良好
  • react-native 命令运行良好 react-native bundle --platform android --entry-file index.android.js --bundle-output xyz/index.android.bundle --assets-dest xyz/ --dev false

但是当我尝试运行 ./gradlew bundleReleaseJsAndAssets --debug 它运行无限时间。 我正在使用 MAC,gradle 4.7

试过 project.ext.react = [ extraPackagerArgs: ["--max-workers=1"] ] 尝试 org.gradle.configureondemand=true 因为我可以手动捆绑。 从以下链接尝试解决方案

https://proandroiddev.com/bundling-react-native-during-android-release-builds-ec52c24e200d

https://github.com/facebook/react-native/issues/11696

https://github.com/facebook/react-native/issues/10078

[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
21:25:28.941 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
21:25:28.942 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
21:25:28.942 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
21:25:28.942 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
21:25:28.942 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
21:25:29.241 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total: 17179869184, Free: 6562177024}
21:25:29.242 [DEBUG] [org.gradle.launcher.daemon.server.health.LowMemoryDaemonExpirationStrategy] Received memory status update: {Total: 17179869184, Free: 6562177024}
21:25:29.242 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 954728448, Committed: 671088640}
21:25:34.240 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total: 17179869184, Free: 6569676800}
21:25:34.240 [DEBUG] [org.gradle.launcher.daemon.server.health.LowMemoryDaemonExpirationStrategy] Received memory status update: {Total: 17179869184, Free: 6569676800}
21:25:34.240 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 954728448, Committed: 681574400}
21:25:38.941 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running
21:25:38.941 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
21:25:38.941 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
21:25:38.941 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
21:25:38.942 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
21:25:38.942 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
21:25:38.942 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.

如果有帮助,下面是 ps -ef | 的结果grep "gradle"

-Dfile.encoding=UTF-8 -Duser.country=IN -Duser.language=en -Duser.variant -cp /Users/x.y/.gradle/wrapper/dists/gradle-4.10.1-all/455itskqi2qtf0v2sja68alqd/gradle-4.10.1/lib/gradle-launcher-4.10.1.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 4.10.1
2029432261 16668 16658   0  9:24PM ??         3:48.65 /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /Users/x.y/.gradle/wrapper/dists/gradle-4.10.1-all/25vec0eimrsoqjasnun8prrj45/gradle-4.10.1/lib/gradle-launcher-4.10.1.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 4.10.1
2029432261 16658  1910   0  9:24PM ttys001    0:14.87 /usr/bin/java -Xdock:name=Gradle -Xdock:icon=/Users/x.y/Dev/Mobile/myapp-android/media/gradle.icns -Dorg.gradle.appname=gradlew -classpath /Users/x.y/Dev/Mobile/myapp-android/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain clean assembleRelease --debug

【问题讨论】:

    标签: android react-native android-gradle-plugin react-native-android gradlew


    【解决方案1】:

    终于可以通过了。 react.gradle 文件设置输入以缓存结果 input.files fileTree(dir: reactRoot, excludes: inputExcludes)

    这就是原因

    【讨论】:

    • 请进一步解释您的解决方案,因为我遇到了同样的问题。
    • 他说了什么^^
    【解决方案2】:

    如果手动弹出,我会首先尝试更新/升级我的 gradle-wrapper.properties:

    distributionUrl=https://services.gradle.org/distributions/gradle-4.10.2-all.zip

    或 如果您不想手动执行此操作,请在您的 dir android run 中:

    $ .\gradlew wrapper --gradle-version 5.4.1 --distribution-type all
    

    它在你的 gradle.properties 中显示它现在应该是:

    distributionUrl=https://services.gradle.org/distributions/gradle-5.4.1-all.zip

    https://gradle.org/install/#manually

    如果一切都失败了,我会尝试在 shell 中运行它,看看它是我的电脑还是我的项目有其他问题。

    【讨论】:

      【解决方案3】:

      我遇到了完全相同的问题。

      原因:

      • 由于某种原因,babel 已经过时(甚至是 RN 依赖)。可能存在依赖冲突。

      解决方案:

      • 删除node_modulesyarn.lock
      • yarn

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-20
        • 2020-11-28
        • 2017-07-23
        • 2017-11-15
        相关资源
        最近更新 更多