方法一:

    新建个 Android studio 项目,用 webview 指定访问你的页面

方法二:

使用工具 cordova  附上地址:http://cordova.axuer.com/docs/zh-cn/latest/guide/platforms/android/index.html

方法三:

    ionic 结合 cordova

方法四:

    ApiCloud

https://www.jianshu.com/p/c45148134082

方法五:

  可参考 文档(https://reactnative.cn/docs/signed-apk-android/)

    1.生成私有秘钥

             ①根目录下打开终端,执行命令:

                      keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize2048-validity10000

                    ②根据提示输入口令: 同时记住 密钥库口令 

                    ③生成密钥库文件    根目录下生成一个 my-release-key.keystore 的文件,直接拿到android/app

               2.设置 gradle 变量:
      
①在android/gradle.properties中加入代码:

       MYAPP_RELEASE_STORE_FILE=my-release-key.keystore

          MYAPP_RELEASE_KEY_ALIAS=my-key-alias

          MYAPP_RELEASE_STORE_PASSWORD=******

          MYAPP_RELEASE_KEY_PASSWORD=******

       其中******换成 密钥库口令

                3.添加签名配置:

      ①在android/app/build.gradle添加代码:

        android {

              ...

               defaultConfig {

                        ....

                    }

                 signingConfigs {

                 release {

                      storeFile file(MYAPP_RELEASE_STORE_FILE)

                      storePassword MYAPP_RELEASE_STORE_PASSWORD

                      keyAlias MYAPP_RELEASE_KEY_ALIAS

                      keyPassword MYAPP_RELEASE_KEY_PASSWORD

                  }

              }

            splits {

                 ....

           }

             buildTypes {

               release {

                    signingConfig signingConfigs.release

                  ...

                }

            }

            .....

        }

       4.生成发行 APK 包    

      ①终端cd到android目录下  

          gradlew clean (不clean也能打包,但是安装后容易造成APP闪退的问题)

          gradlew assembleRelease

      需要注意的是每次打包之前最好删除android和android/app文件下的build包,清除之前的缓存。

      ②success之后生成的apk文件位于android/app/build/outputs/apk/release/app-release.apk。

问题解决一:

      现象:ANDROID打包错误ERROR:EXECUTION FAILED FOR TASK ´:APP:LINTVITALRELEASE´.

解决办法:在app的build.gradle里的android{}中添加如下代码

        

android {
compileSdkVersion
buildToolsVersion ´25.0.´ defaultConfig {
applicationId "com.luzhiyao.sgongdoocar"
minSdkVersion
targetSdkVersion
versionCode
versionName "1.1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(´proguard-android.txt´), ´proguard-rules.pro´
}
} //添加此处代码即可
lintOptions {
checkReleaseBuilds false
abortOnError false
}
}

再次打包 结果如下:

      问题二:npm WARN checkPermissions Missing write access to D:\react-native-workspace\react-native\react-nativ

解决办法:(待验证)

        删除掉 C:\Users\dd\AppData\Roaming\npm-cache\

            C:\Users\dd\AppData\Roaming\npm\  两个文件夹  重新执行 npm install -g

      关闭自动唤起的 Metro Server ,在项目根目录手动运行:react-native start --root 项项目绝对路径/rn_temp react-native start --root 项项目绝对路径/rn_temp

封装H5ToApp方法的更多相关文章

  1. js封装的方法

    1.JS封装就是尽量把使用的方式简单化,内部逻辑和使用解耦.通俗的说就是使用的时候只需要知道参数和返回值,其他条件尽量不要使用人员进行设置. 2.JS封装的方法有函数方式.对象的方式.闭包的方式. 举 ...

  2. Visual Studio快速封装字段方法

    在面向对象的编程中我们常常要将各个字段封装为属性,但是当字段多的时候往往这个重复的操作会大大降低我们的开发效率,那么如何才能快速的封装字段呢?下面就给大家2个解决方法: 1.使用封装字段方法: 选中字 ...

  3. 关于tween.js 封装的方法

    今天做的是匀速情况下div的运动.首先开始之前先了解运动的原理 A------------>>BA移动到B 这段距离是总距离 用一个变量保存下来:var dA移动到B 移动的总次数  用一 ...

  4. xml方式封装数据方法

    1.xml方式封装数据方法 2.demo <?php xml方式封装数据方法 /** * [xmlEncode description] * @param [type] $code [descr ...

  5. Kong管理UI -kong-dashboard (附kong封装webservice方法)

    本文仍然是在centos 6.7的环境下进行                 本文转载请注明出处 —— xiaoEight btw如果要正常使用管理UI,前提为kong已经正常run(可参考)起来,此 ...

  6. angular 封装公共方法

    angular封装公共方法到service中间件,节省开发时间 layer.service.ts openAlert(callback) {// 传递回调函数 const dialogRef = th ...

  7. jsonp跨域 封装通用方法

    jsonp跨域 封装通用方法 //用法如下 jsonp({ url:"https://www.xxxx.com", params:{wd:'b'}, callback:'show' ...

  8. python_封装redis_list方法

    xshell 进入 虚拟环境 安装 redis workon py3env # 进入虚拟环境 pip install redis # 安装redis deactivate # 退出虚拟环境 简单的封装 ...

  9. python_封装redis_hash方法

    xshell 进入 虚拟环境 安装 redis workon py3env # 进入虚拟环境 pip install redis # 安装redis deactivate # 退出虚拟环境 简单的封装 ...

随机推荐

  1. 批量删除.svn文件夹、.svn文件

      使用svn进行版本控制,每个文件夹下都有.svn文件夹,有些项目在脱离svn版本控制之后,想删除项目中所有的.svn文件夹,可用下面的方法进行快速删除: 1.打开要删除.svn文件的最外层文件夹, ...

  2. koa 应用生成器

    通过应用 koa 脚手架生成工具 可以快速创建一个基于 koa2 的应用的骨架 1.全局安装 npm install koa-generator -g 2.创建项目 koa koa_demo 3.安装 ...

  3. win7配置flutter报错 运行flutter doctor报错及解决方法

    先按照官方文档进行配置 win10下按照flutter官方文档进行部署flutter 基本没有任何问题 win7情况下 按照官方文档操作后 前面也都可以正常进行 直到 win7下运行flutter d ...

  4. vsftpd 配置上传失败553

    1查看ftp服务 ftp://ftpuser:123456@10.11.102.58:8023 2 getsebool -a | grep ftp 临时关闭 [root@xuegod63~]# get ...

  5. 【React自制全家桶】九、Redux入手

    一.React项目中为什么要用Redux 上图: 左图当使用纯React开发稍微大点的项目,因为React数据是瀑布式的,只能通过父子组件传递数据,所以实现关系不大的两React的组件之间的数据传递就 ...

  6. 代码实现:定义一个文件输入流,调用read(byte[] b)方法,将a.txt文件中的内容打印出来(byte数组大小限制为5)

    package com.loaderman.test; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; im ...

  7. FTP文件上传和下载(JAVA)

    前文 1.使用FTP的方式进行文件的上传和下载(非SFTP) 2.本人手打,亲测,代码是最简单的,清晰易懂,需要的同学请结合自己的实际添加业务逻辑 2.第三方的jar包:import org.apac ...

  8. selenium元素定位方式xpath总结

    一.绝对路径(不要使用,除非已经使用了所有方式仍然无法定位)方法:根据实际目录,逐层输写.例子: find_element_by_xpath("/html/body/div[2]/form/ ...

  9. Redis ==> 集群的三种模式

    一.主从同步/复制 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据. 但是由于数据是存储在一台服务器 ...

  10. Django中间件梳理

    Django之中间件   中间件简介 什么是中间件 中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出.每个中间 ...