我已经构建了我的应用程序,我可以在我的本地模拟器上运行它(也可以在同一网络内通过更改调试服务器在我的android设备上运行)。

然而,我想构建一个APK,我可以发送给没有访问开发服务器的人,我希望他们能够测试应用程序。

我看到有一节使用离线捆绑在iOS部分的文档。但我不知道如何在android上实现同样的功能。这可能吗?如果有,怎么做?

更新:关于这个问题的答案(Android无法加载JS包),据说离线包可以从开发服务器下载。但是当我从开发服务器获取包时,图像文件无法加载。


当前回答

对我来说,./gradlew assemblerrelease不再工作,但下面的可以。

./gradlew :app:assembleRelease

感谢这条评论。

其他回答

如果有人想建立没有playstore键,那么这个命令将是非常有用的。

# react-native run-android——variant=release

构建完成后,您可以在发布构建文件中找到apk。

进入工程目录,执行如下命令:

cd android && ./gradlew assembleRelease

如果你得到一个涉及index.android.js的错误。这是因为您正在使用新的React-native版本(我使用的是0.55.4) 只需将"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/

只有这对我有用- yarn android -variant=release

一些有用的脚本为windows用户

在包中复制粘贴这些代码。“script”下的Json文件:{}

 * VS Code
   --Enable NPM SCRIPT

   --Now you can directly run scripts from here


    "android": "react-native run-android",
    "clean-run-android": "cd android && ./gradlew clean && cd.. && react-native run-android  ",
    "start": "node node_modules/react-native/local-cli/cli.js start --reset-cache",
    "reset": "rm -rf node_modules/ && npm cache clear && watchman watch-del-all && npm i",
    "debug-build": "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/ && cd android && ./gradlew assembleDebug && cd app/src/main/res/ && rmdir /S /Q raw && rmdir /S /Q drawable-mdpi",
    "release-build": "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/ && cd android && ./gradlew assembleRelease && cd..",
    "install-apk": "cd android && ./gradlew installRelease",
    "release-aab": "cd android && ./gradlew bundleRelease"