1、必须将gradle环境配置好(以MAC为例,在根目录下打开 .bash_profile文件,如下编写即可)
// 配置AndroidSDK环境
export ANDROID_SDK_PTOOLS=/Users/yangbin/Library/Android/sdk/platform-toolsexport PATH=${PATH}:$ANDROID_SDK_PTOOLS
// 配置AndroidSDKTools环境export ANDROID_SDK_TOOS=/Users/yangbin/Library/Android/sdk/toolsexport PATH=${PATH}:$ANDROID_SDK_TOOLS
// 配置NDK环境export NDK_ROOT=/Users/yangbin/Library/Android/android-ndk-r12export PATH=${PATH}:$NDK_ROOT/
// 配置gradle环境export GRADLE_HOME=/Users/yangbin/Library/Android/gradle-2.14.1export PATH=$PATH:$GRADLE_HOME/bin
保存之后,输入 source .bash_profile
然后输入 gradle -version 检查是否配置成功
2、创建项目
react-native init androiddemo
3、 在androiddemo目录中找到路径/android/app/src/main,并在该目录下新建《assets》文件夹,这个文件夹存放android app的资源文件。
4、在/androiddemo/路径下执行react-native start命令,待执行完毕以后再执行以下命令
curl -k 'http://localhost:8081/index.android.bundle' > android/app/src/main/assets/index.android.bundle
或者:react-native bundle --entry-file index.android.js --bundle-output ./android/app/src/main/assets/index.android.bundle --platform android --assets-dest ./android/app/src/main/res/ --dev false
该命令的意思是将index.android.bundle下载并保存到assets资源文件夹中
这句命令是重点,如果assets目录中不存在该文件,则打包的apk在执行时显示空白。
5、
打包的apk在未签名的情况下,在手机中(非root)是不允许安装的,所以需要添加gradle的android keystore配置,在build.gradle文件中,具体配置如下
//签名signingConfigs{release {storeFile file("/Volumes/Android.KeyStore/AndroidDebug.keystore")storePassword "密码"keyAlias "keyAlias的名字"keyPassword "密码"}}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release //添加这句话引用签名配置}}
注意一下配置顺序
5、在androiddemo/android/目录中执行gradle assembleRelease命令,打包后的文件在 androiddemoi/android/app/build/outputs/apk目录中,例如app-release.apk。如果打包碰到 问题可以先执行 gradle clean 清理一下。
6、将apk复制到手机中安装运行
其实基本上就是官网所说的一样,反正我是这么做的