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

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

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

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


当前回答

执行如下命令:

react-native run-android --variant=release

注意——variant=release仅在设置了签名时可用 使用cd android && ./gradlew assemblerrelease。

其他回答

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

cd android && ./gradlew assembleRelease

我有另一个解决办法:- 生成签名密钥 您可以使用keytool生成一个私有签名密钥。在Windows上,keytool必须从C:\Program Files\Java\jdkx.x.x_x\bin.运行

$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

把我的释放钥匙放上去。在项目文件夹的android/app目录下的Keystore文件。

编辑文件android/app/build。Gradle在你的项目文件夹,并添加签名配置,

android {
....
signingConfigs { 
  release { 

      storeFile file('my-release-key.keystore') 
      storePassword 'yourpassword' 
      keyAlias 'my-key-alias' 
      keyPassword 'yourpassword' 

  } 
}}}


buildTypes {release {signingConfig signingConfigs.release}}

和运行

gradlew assembleRelease

这将给你两个文件在android\app\build\outputs\apk App-release.apk和app-release-unsigned.apk 现在在你的android设备上安装app-release.apk。

只有这对我有用- 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"

Android Studio中的GUI方式

Have the Android app part of the React Native app open in Android Studio (this just means opening the android folder of your react-native project with Android Studio) Go to the "Build" tab at the top Go down to "Build Bundle(s) / APK(s)" Then select "Build APK(s)" This will walk you through a process of locating your keys to sign the APK or creating your keys if you don't have them already which is all very straightforward. If you're just practicing, you can generate these keys and save them to your desktop. Once that process is complete and if the build was successful, there will be a popup down below in Android Studio. Click the link within it that says "locate" (the APK) That will take you to the apk file, move that over to your android device. Then navigate to that file on the Android device and install it.