Android studio gradle方式批量快速打包整理

来源:互联网 发布:php传值与传引用 编辑:程序博客网 时间:2024/06/14 09:49

利用gradle 上线打包方式总结:

1 as打包
主界面右边Gradle–>项目目录–>build–>双击assembleRelease查看日志是否打包成功。
直接上图:这里写图片描述

看日志是否打包成功,如果打包失败可以尝试使用命令行打包。之前打包的react native的项目,使用as打包失败,原因:as里面好像找不到node环境,所以还是到命令行执行打包。

2 命令行打包
需要到项目的所在目录react native的项目 需要指定到android的文件夹 执行命令:./gradlew assembleRelease 然后查看日志是否打包成功

报错2.1 之前打包出现报错:Process ‘command ‘/Users/admin/Library/Android/sdk/build-tools/23.0.1/aapt” finished with non-zero
这个问题,找了很多资料,虽然解决了,但是还是不知道为什么,问题的主要原因是因为资源文件解析错误。 clearn 和 Rebuild不管用
常见的原因有
  2.1.1.资源文件名冲突
    这个换个文件名就可以了
  2.1.2.引用包重复
    Android studio 下面有了v4包或者v7包,这个时候在libs下又添加了一次包,就会报这个错误,删掉Libs下重复的包就行了。
  2.1.3.文件名显示的格式与文件本身的格式不对应
    这个比较难发现,重新换个正确的文件就可以了。
解决办法:将drawable中没用的图片全都删除掉就可以执行成功了,坑爹啊!!!!!!FUCK!!!!!!
 报错2.2 Error:Execution failed for task ‘:app:transformClassesWithDexForDebug’.
 解决办法:在build.gradle文件中加入:
defaultConfig {
multiDexEnabled true
}
3 打包完成后查看所保存的路径 即在项目目录中build默认的outputs文件夹下查看即可

4 Mac上安装apk到手机方法
4.1 通过QQ 微信发过去 比较笨的方法
4.2 通过命令行打包 前提是要有adb环境 adb -verson检测一下,连接上手机执行 adb install -r .apk(apk的绝对路径)

5 上线批量打包 Packer-Ng方式 打包神器,100个渠道包只需5s 哈哈
PackerNg原理
优点:
使用APK注释字段保存渠道信息和MAGIC字节,从文件末尾读取渠道信息,速度快
实现为一个Gradle Plugin,支持定制输出APK的文件名等信息,方便CI集成
提供Java版和Python的独立命令行脚本,不依赖Gradle插件,支持独立使用
由于打包速度极快,单个包只需要5毫秒左右,可用于网站后台动态生成渠道包
缺点:
没有使用Android的productFlavors,无法利用flavors条件编译的功能
文件格式

Android应用使用的APK文件就是一个带签名信息的ZIP文件,根据 ZIP文件格式规范,每个ZIP文件的最后都必须有一个叫 Central Directory Record 的部分,这个CDR的最后部分叫”end of central directory record”,这一部分包含一些元数据,它的末尾是ZIP文件的注释。注释包含Comment Length和File Comment两个字段,前者表示注释内容的长度,后者是注释的内容,正确修改这一部分不会对ZIP文件造成破坏,利用这个字段,我们可以添加一些自定义的数据,PackerNg项目就是在这里添加和读取渠道信息。
细节处理

原理很简单,就是将渠道信息存放在APK文件的注释字段中,但是实现起来遇到不少坑,测试了好多次。
主要设计两个文件markets.txt(渠道名字) PackerNg(打包)
步骤如下:
右单机PackerNg弹出下拉窗,点击Edit Configurations选项弹出下图所示
这里写图片描述

步骤1中注意一定是在PackerNg的情况下,点击步骤一弹出窗口
步骤2:点击配置:将之前打包好的apk的绝对路径拖过来;再将markets.txt的渠道名的文本路径拖过来,点击确定
之后在运行步骤1会在项目目录下自动生成文件夹apks(在PackerNg.java文件中配置好的)如下图:
这里写图片描述

6 批量打包完成。注意的地方是360渠道上线审核的时候需要单独去360上加固再重新签名才允许审核通过

由于时间原因:详细点待整理

1 0
原创粉丝点击