【问题标题】:Release APK Not Updating With JavaScript Code发布未使用 JavaScript 代码更新的 APK
【发布时间】:2017-08-01 14:55:06
【问题描述】:

当我生成第一个签名的 APK 时,我的 Android APK 正在运行 JavaScript。我已经尝试在 Android Studio 中清理/重建项目,我在 android 子文件夹中尝试了 ./gradlew clean。关于为什么代码没有更新的任何想法?我见过this issue,但我自己没有任何成功。

【问题讨论】:

    标签: android react-native


    【解决方案1】:

    我删除了android/app/src/main/assets/ 目录中的index.android.* 文件。然后在项目根目录下,运行

    react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
    

    然后我重新生成了签名的 APK,瞧!

    编辑:如果您使用的是较新的项目,您可能没有index.android.js,只有index.js。如果是这种情况,您需要将其更改为:

    react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
    

    【讨论】:

    • 你拯救了我的一天。
    • 每次提交新版本时都必须这样做吗?有永久修复吗?
    • 知道为什么我因为没有 index.android.js 而出现错误吗?
    • 根据 0.49 版(2017 年 9 月),没有 index.android.js 和 index.ios.js。只有 index.js(他们两个的唯一文件)
    • 这是我在敲击键盘 3 小时后的解决方案……谢谢伙计
    【解决方案2】:

    1.删除(index.android.bundle)目录android/app/src/main/assets内的文件。

    2.运行react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

    3.删除@​​987654325@内的文件夹(drawable,drawable-hdpi,drawable-mdpi,drawable-xhdpi,drawable-xxhdpi,drawable-xxxhdpi,raw

    4.运行react-native run-android --variant=release

    如果不工作试试这个https://github.com/react-native-community/async-storage/issues/127#issuecomment-502574735

    【讨论】:

      【解决方案3】:

      如果您正在使用 EXPO 并且您已退出应用程序,则构建过程仍会通过 EXPO 的服务器。为了: 从项目根文件夹中将更改发布到 EXPO:

      expo-cli publish
      

      然后,一旦完成,从 android 根文件夹中:

      gradle assembleDebug
      

      gradle assembleRelease
      

      【讨论】:

      • 救了我的命,伙计
      【解决方案4】:

      以下命令对我有用...

      1. cd android
      
      2. gradlew clean
      
      3. gradlew assembleRelease
      

      谢谢

      【讨论】:

        【解决方案5】:

        我还不能发表评论,所以这里是 Noe Fabellon 建议的长时间自动化(这对我有用)

        从项目根目录

        rm android/app/src/main/assets/index.android.bundle && react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && rm -R android/app/src/main/res/drawable-hdpi android/app/src/main/res/drawable-mdpi android/app/src/main/res/drawable-xhdpi android/app/src/main/res/drawable-xxhdpi android/app/src/main/res/drawable-xxxhdpi android/app/src/main/res/raw || true && cd android && ./gradlew clean && ./gradlew assembleRelease && cd .. && react-native run-android --variant=release
        

        【讨论】:

          【解决方案6】:

          当我使用 assembleRelease 时,它​​会生成较旧的 apk。

          将下面的配置添加到app/build.gradle

          project.ext.react = [
            bundleInRelease: true
          ]
          

          解决了我的问题。

          【讨论】:

            【解决方案7】:

            我遇到了类似的问题,如果没有一个解决方案对你有用,这个应该有用:

            1. cd 安卓
            2. gradlew 清洁
            3. 转到 AwesomeProject\android\app\src\main\assets删除 index.android.bundle 文件
            4. cd..
            5. react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/ app/build/intermediates/res/merged/release/
            6. gradlew assembleRelease

            【讨论】:

              猜你喜欢
              • 2021-07-20
              • 1970-01-01
              • 2020-01-19
              • 1970-01-01
              • 1970-01-01
              • 2018-09-11
              • 1970-01-01
              • 2016-05-19
              • 1970-01-01
              相关资源
              最近更新 更多