aapt 命令生成 R文件
在做android的apk的二次打包工作中会经常使用到aapt,下面做个简单的随笔吧
- appt(Android Asset Packaging Tool)是android sdk 里面的一个资源编译工具,AS打包生成apk过程中就使用了aapt,另外使用apktool进行decode和build也用到了aap
- 在我们反编译一个apk后如果修改了AndroidManifest.xml中manifest元素的package属性后,我们需要重新联合res目录、AndroidManifest.xml、android.jar文件来生重新成R.jar文件,再通过dx.jar以及baksmali.jar最终生成R.samli、R$id.samli...,然后替换掉母包中使用到的老的R类或R$xxx引用,就能保证我们新构建的apk正常运行,否则可能报资源ID找不到的异常
- 在android的sdk目录下的build-tools下能找到一个appt.exe文件,如图所示:
- 接下来我们可以使用cmd命令生成R.java文件,首先我们要准备一个apk(母包),然后使用apktool命令(示例:apktool d 7.apk -f --only-main-classes )将其反编译出来得到一个目录,apktool的详细使用可参考CSDN
https://mp.csdn.net/mp_blog/creation/editor/123645083
- 如下是反编译后的目录,我们将使用这个目录来生成我们的R.java文件
- 接下来在母包目录下新建一个gen目录,为了方便我们使用命令,可以将aapt.exe以及android.jar 都拷贝到与apktool.jar同级的目录,如果不在同目录下,文件路径必须是绝对路径;然后执行命令aapt p -f -m -J G:\workspace\apktool\7\gen -S G:\workspace\apktool\7\res -I G:\workspace\apktool\android.jar -M G:\workspace\apktool\7\AndroidManifest.xml,可以看到已经生成了我们想要的R.java文件
- p 编译生成R.java文件
- -f 如果编译出 来的文件已经存在,强制覆盖。
- -m 使生成的 包的目录放在-J参数指定的目录。
- -J 指定生成 的R.Java的输出目录
- -S res文 件夹路径
- -A assert文 件夹的路径
- -M AndroidManifest.xml的路径
- -I 某个版本平台的android.jar的路径
- -F 具体指定apk文件的输出
aapt 命令生成 R文件相关推荐
- Android 个人学习笔记- 导入android项目,无法自动生成R文件的解决方法
2019独角兽企业重金招聘Python工程师标准>>> 从网上下载源码导进eclipse后,发现该有的jar包都有以后,就是无法在gen目录下生成R文件. 假如你也遇到这样的问题,你 ...
- 命令行下使用javah命令生成.h文件,出现“错误: 无法访问android.app.Activity 找不到android.app.Activity的类文件”的解决方法...
在学习NDK中,当我在项目的bin/classes目录下使用javah命令生成头文件时,出现了"错误: 无法访问android.app.Activity 找不到android.app.Act ...
- 计算机打开光驱的命令,巧:用DOS命令生成光盘文件列表 -电脑资料
现在用刻录机备份数据已经非常普及,例如笔者就经常将一些常用的软件.游戏.电影及其它文档刻录到光盘中, [被屏蔽广告] 于是笔者想了一个办法,用Excel记录下每张光盘的文件/文件夹列表,当需要查找某个 ...
- linux dd flash,用dd命令生成bin文件,而不用拆flash读取文件
对于linux系统,善用dd命令,可以做到直接生成bin文件,而不用生产拆flash. 1) 读flash,保存成bin文件: ~ $ cat /proc/mtd dev: size erasesiz ...
- protoc 命令生成java文件时报错解决方案
当使用protoc --java_out=./ running_conditions.proto命令通过proto协议文件生成java文件报错如下时 running_conditions.proto: ...
- 学习笔记:jmeter-CLI命令生成jtl文件及html文件
背景:jmeter学习中,CLI:无界面模式 负载测试使用CLI模式,而非GUI模式(GUI模式仅用于创建测试计划和调试脚本) 原因:性能测试多用户并发,消耗资源较高:GUI图像界面本身占用资源,导致 ...
- Android无法生成R文件的终极解决办法
R文件如果在clean项目(Project->Clean)和 Fix Project Properties(如下图): 如果在第一步无法解决的的时候,那可能原因就是资源文件调用的错误,比如资源文 ...
- linux命令生成hprof文件,Android平台生成任意进程的hprof文件
一.知识介绍 1.1 为什么要抓取hprof hprof文件中记录了当前进程内存的使用情况,对于一些难以解决的OOM问题,提取出对应进程的hprof文件可以很好的分析这种问题. 分析hprof的工具 ...
- protoc 命令 java_用proto命令生成java文件
1.下载: https://code.google.com/p/protobuf/downloads/list 下载 protoc-2.5.0-win32,然后解压,配置protoc环境变量 2.cm ...
最新文章
- java面试(2)--大数据相关
- SSD行业要变天了!因为这种闪存芯片要来
- vba sub是什么缩写_这些掌握了,你才敢说自己懂VBA
- tf.dynamic_stitch 和 tf.dynamic_partition
- Plain text, flat file, 及flat-file database 如何翻译
- mysql主从复制超简单,mysql简单主从复制
- 小学python还是c_python和c先学哪个
- Java反射运行时_java反射获得运行时属性的值
- 读书:《从零到百亿-Facebook创业故事》
- 实习成长之路——设计模式三:组合与继承有啥关系?为什么说多用组合少用继承?如何选择使用哪种方式?
- 【微波】【1】色散关系式与 TEM导波、TE导波、TM导波、混合波区别和特性
- 开源项目学习之(二)------iBase4J环境搭建
- “Microsoft Internet Explorer”,微软的最后一款IE,以此命名——IE6!
- yaml 变量引用_Yaml语法使用
- 一万年太久只争朝夕:从灯泡的寿命谈截尾样本的基础知识
- (已更新)成语小秀才小程序V2.0.14完整安装包+小程序前端
- 【经验分享】突然我的SM.MS的图床没法访问了(内附解决方法)
- 【程设作业】魔兽世界三:开战
- 基因组水平以及转录组水平研究技术
- XDOJ 133-一元稀疏多项式计算器