参考地址:React native Android 命令 打包apk

首先:尝试使用模拟器测试

这里是因为需要确认目前在电脑上的模拟器是可以正常运行的,并且,开发React native的应用程序,肯定是需要做一些本地测试的

第一:生成签名密钥

这一步的操作主要是生成需要的签名密钥,供android调用,生成的文件待用

在项目根目录运行以下命令,输入的密码是比较简单的1234567890

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

第二:设置gradle

分两步:

第一步:配置全局的gradle变量

打开C:\Users\chenwes\应该是可以看到一个文件夹.gradle,打开后,应该也有一个文件gradle.properties,如果不存在该文件,可以手动创建,并在该文件中输入以下内容

TEST_RELEASE_STORE_FILE=my-release-key.keystore
TEST_RELEASE_KEY_ALIAS=my-key-alias
TEST_RELEASE_STORE_PASSWORD=1234567890
TEST_RELEASE_KEY_PASSWORD=1234567890

第二步:给项目添加签名

将刚才生成的签名文件my-release-key.keystore复制至react native项目中的android\app文件夹中

并手动编辑android\app文件夹下的build.gradle文件,

...
android {
...
defaultConfig { ... }
signingConfigs {
release {
storeFile file (TEST_RELEASE_STORE_FILE)
storePassword TEST_RELEASE_STORE_PASSWORD
keyAlias TEST_RELEASE_KEY_ALIAS
keyPassword TEST_RELEASE_KEY_PASSWORD
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...

以下是我本地修改过的build.gradle的文件

第三步:生成APK

第一次没有成功,

在项目的根目录,运行命令

cd android #如果你已经在anroid目录,则不需要该命令

gradlew assembleRelease 

以下这种方法适合对于,在项目的android/app下有一个react.gradle文件的情况,但我的没有,马上进行第二次尝试

第二次尝试

因为在我的电脑中,在项目的android/app下没有react.gradle文件,需要按以下流程来处理

  1:到D:\test\TestAndroidApk\android\app\src\main,创建一个assets的空文件夹

  2:打开命令窗口,定位到项目的根目录,运行命令,运行完成后,应该可以在项目目录下的D:\test\TestAndroidApk\android\app\src\main\assets看到两个文件,即index.bundle和index.bundle.meta两个文件,生成的这两个文件,会打包至APK中。

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/
#这里注意一下参数--entry-file index.js 因为React Native以前的版本会生成两个文件,现在的版本0.52.0已经变成只有一个文件,这里需要注意,参考别人的文章时需要注意。

  3:命令窗口进入至android目录,运行命令

gradlew assembleRelease

  4:最后需要清理,运行命令

gradlew clean


在生成APK时,如果遇到错误,不要慌,先仔细对一下各项参数是否都可以对应到

1:在生成签名文件时,四个参数是否与C:\Users\chenwes\.gradle文件夹中的gradle.properties设置的四个参数是不是一致。

2:C:\Users\chenwes\.gradle文件夹中的gradle.properties设置的四个参数要与 D:\test\TestAndroidApk\android\app文件夹中的build.gradle中的signingConfigs  =》 release节点中的一致(gradle.properties设置的真实的值,且是全局的,build.gradle的是一个引用值)

3:D:\test\TestAndroidApk\android\app文件夹中的build.gradle中的buildTypes =》 release是不是加入了signingConfig signingConfigs.release

简单的步骤总结:

生成APK

.生成tqstablet.keystore文件,并复制到~\tqs-tablet\android\app文件夹
keytool -genkey -v -keystore tqstablet.keystore -alias tqstablet -keyalg RSA -keysize -validity .gradle全局文件(不存在则新增)
C:\Users\chenwes\.gradle增加内容
TQSTABLET_RELEASE_STORE_FILE=tqstablet.keystore
TQSTABLET_RELEASE_STORE_PASSWORD=******
TQSTABLET_RELEASE_KEY_ALIAS=tqstablet
TQSTABLET_RELEASE_KEY_PASSWORD=****** .~\tqs-tablet\android\app\src\main创建assets空文件夹 .在根目录执行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/
应该会在~\tqs-tablet\android\app\src\main\assets生成index.android.bundle和index.android.bundle.meta .在根目录的android文件夹执行gradlew assembleRelease
~\tqs-tablet\android\app\build\outputs\apk生成APK完成 .在根目录的android文件夹执行gradlew clean清空

在模拟器使用生成的APK

react native 生成APK的更多相关文章

  1. [RN] React Native 生成 Android APK

    在用模拟器或者真机调试完App后,需要将App打包成Apk发布文件. 下面简单记录下打包步骤: 第一:生成签名密钥 这一步的操作主要是生成需要的签名密钥,供android调用,生成的文件待用 在项目根 ...

  2. React Native之APK文件签名及打包

    生成apk签名文件 我们使用android studio的方式进行签名 AS工具栏找到并点击 build->gennrate signed apk 两种情况: 1.这里如果已经有签名文件了则直接 ...

  3. React Native Build Apk

    1 React Native安卓项目打包APK 1.1 产生签名的key 先通过keytool生成key 1 keytool -genkey -v -keystore demo-release-key ...

  4. React Native 打包 Apk

    第一步:生成秘钥库 keytool -genkey -v -keystore opsmart-android-release-key.keystore -alias opsmart-android - ...

  5. App Center编译React Native平台Android应用

    做React Native一段时间后,对于React Native的发布有一些了解,原本的方法都是在本地直接生成APK文件的,具体可以参考<react native 生成APK> 因为需要 ...

  6. [翻译]Review——24 tips for React Native you probably want to know

    Post author: Albert Gao Post link: http://www.albertgao.xyz/2018/05/30/24-tips-for-react-native-you- ...

  7. 【React Native开发】React Native进行签名打包成Apk

    转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50525976 本文出自:[江清清的博客] (一)前言 [好消息]个人 ...

  8. React Native & Android & iOS & APK

    React Native & Android & iOS & APK https://play.google.com/apps/publish/signup/ $ 25 bui ...

  9. [RN] React Native 打包时 减少 Apk 的大小

    React Native 打包时 减少 Apk 的大小 主要有两个方法: 在打包前设置 android\app\build.gradle 文件中 1) def enableProguardInRele ...

随机推荐

  1. 第三方库升级Nginx

    通过PPA方式,来升级Nginx 1. 添加PPA sudo add-apt-repository ppa:nginx/stable sudo apt-get updatesudo apt-get u ...

  2. canvas知识03:学写一个字案例

    效果

  3. 转:Java中的equals和hashCode方法详解

    转自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这 ...

  4. c# “XXX::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。

    症状描述如下: 如果将一个委托作为函数指针从托管代码封送到非托管代码,并且在对该委托进行垃圾回收后对该函数指针发出了一个回调,则将激活 callbackOnCollectedDelegate 托管调试 ...

  5. Jenkenis报错:该jenkins实例似乎已离线[转]

    解决方法: 安装插件那个页面,就是提示你offline的那个页面,不要动.然后打开一个新的tab,输入网址http://localhost:8080/pluginManager/advanced. 这 ...

  6. bzoj 1705: [Usaco2007 Nov]Telephone Wire 架设电话线——dp

    Description 最近,Farmer John的奶牛们越来越不满于牛棚里一塌糊涂的电话服务 于是,她们要求FJ把那些老旧的电话线换成性能更好的新电话线. 新的电话线架设在已有的N(2 <= ...

  7. 【Python学习笔记】多版本python使用pip安装第三方库

    不知道是不是有人跟我一样,一直Python2与Python3混着用,然而在cmd中默认的Python版本只有一种,使用 pip install xxx(第三方库名)  只会安装到默认版本上. 而如果需 ...

  8. Win10默认浏览器怎么设置

    1.首先在Win10桌面左下角的开始菜单图标上右键单击鼠标,在弹出的菜单选项中,点击进入“控制面板”,如下图所示. 接下来就可以找到“默认程序”设置了,找到后点击进入设置,如下图所示. 打开Win10 ...

  9. TCP之connect

    1. connect函数: #include <sys/socket.h> int connect(int sockfd, const struct sockaddr *servaddr, ...

  10. python基础===抽象

    懒惰即美德 斐波那契数列: >>> fibs = [0,1] >>> for i in range(8): fibs.append(fibs[-2]+fibs[-1 ...