1、必须将gradle环境配置好(以MAC为例,在根目录下打开 .bash_profile文件,如下编写即可)
// 配置AndroidSDK环境
export ANDROID_SDK_PTOOLS=/Users/yangbin/Library/Android/sdk/platform-tools
export PATH=${PATH}:$ANDROID_SDK_PTOOLS
// 配置AndroidSDKTools环境
export ANDROID_SDK_TOOS=/Users/yangbin/Library/Android/sdk/tools
export PATH=${PATH}:$ANDROID_SDK_TOOLS
// 配置NDK环境
export NDK_ROOT=/Users/yangbin/Library/Android/android-ndk-r12
export PATH=${PATH}:$NDK_ROOT/
// 配置gradle环境
export GRADLE_HOME=/Users/yangbin/Library/Android/gradle-2.14.1
export 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 false
proguardFiles 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复制到手机中安装运行
其实基本上就是官网所说的一样,反正我是这么做的