00000
来源:互联网 发布:ipad淘宝怎么追加评价 编辑:程序博客网 时间:2024/05/17 02:01
//*3&^%
Android反编译后加入资源文件,打包 签名 运行会报错 找不到资源文件,原因是 新加入的资源没有生成R文件!
两种 解决思路。1 合并这两个app的R文件(没有找到方法);2 重新生成R文件(ok);
参考:重新编译生成R文件
在为游戏接入A站SDK时,发现接好的SDK,编译执行时,找不到资源Id。当时就很懵逼,搞不懂为什么R文件没有自动生成资源id,通过一天的研究,查找资料,终于搞定了!下面就是怎么重新编译生成R文件的步骤:
1.生成smali文件夹
使用打包脚本生成一个合并ACfunSDK后的无签名apk包,使用apktool d xx.apk解压apk,生成smali文件夹
2.生成R文件
把步骤1获得的AndroidManifest.xml文件和res文件夹复制到一个新建的文件夹里,使用aapt命令生成R.java文件,命令如下:
aapt package -f -m -J /Users/Dexlin/Desktop/ -S res -I /Users/Dexlin/Library/Android/sdk/platforms/android-19/android.jar-M AndroidManifest.xml
红色部分为需要修改的地方:
第一个红色部分:R文件生成后存放路径(R文件会自动保存在游戏包名目录下)
第一个红色部分:使用的SDK编译版本
出现问题总结:
1.如drawable-mdpi与drawable-mdpi-v4中同时存在相同文件名的文件,需要删除drawable-mdpi中的文件
2.如果游戏的AndroidManifest.xml文件中存在android:isGame="true"属性,需要把它去除
3.如提示values-v21中存在不支持的样式,去除即可
3.编译R.java文件
javac -source 1.6 -target 1.6 R.java)
4.生成的R文件的jar
把R文件所在的目录生成为JAR
命令 jar cvf all.jar com
5.生成 dex文件
把R文件生成的JAR编译为dex文件
命令: dx --dex --output=classes.dex all.jar
*如果出现下面错误需要下载dx.jar(把dx.bat文件拷贝到android-sdk\build-tools\23.0.2\lib目录下
):
java.lang.RuntimeException: Exceptionparsing classes
atcom.android.dx.command.dexer.Main.processClass(Main.java:752)
atcom.android.dx.command.dexer.Main.processFileBytes(Main.java:718)
atcom.android.dx.command.dexer.Main.access$1200(Main.java:85)
atcom.android.dx.command.dexer.Main$FileBytesConsumer.processFileBytes(Main.java:1645)
6、生成smali文件
使用baksmali-2.0.3.jar把获得的dex文件转换为smali文件
命令:java -jar baksmali-2.0.3.jar classes.dex
7.替换smali文件
把生成的smali文件替换到步骤1中相同的目录下
如:生成的smali文件路径为:com.test,即需要替换到步骤1中的com.test
8、编译apk,签名安装测试
- 00000
- 00000
- 00000
- 00000
- 00000
- 00000
- ora-00000
- [00000] 模板
- imp-00010 imp-00000
- 00000 网络学习分享
- ODBC error 00000 in SQLConnect:
- ORA-00000 to ORA-00851
- ORA-00000 normal, successful completion
- 怎样解析一个字符串“00000,10003,10001”
- 00000,00001,10003//构造University数组
- Oracle 导出错误 EXP-00000~EXP-00107
- Oracle错误代码ORA-00000 to ORA-00832
- 0×00000xxx型内存错误
- CentOS7.4 用 yum安装X Window (GNome)
- 编程之美:寻找最大的K个数
- 51nod 1284(容斥)
- activity-alias 多入口配置
- Java爬虫实践
- 00000
- GitHub上排名前100的Android开源库
- Java并发编程:Synchronized及其实现原理
- [Leetcode] 517. Super Washing Machines 解题报告
- 【Scikit-Learn 中文文档】线性和二次判别分析
- 看了两天,终于能在两个手机端发送接收消息(自用 记录)
- 模仿米家有品网页3
- BP算法双向传_链式求导---阿里云社区
- xpath路径表达式笔记