重新编译生成R文件

最新推荐文章于 2024-05-10 16:31:13 发布
置顶 sdk_jin 最新推荐文章于 2024-05-10 16:31:13 发布
阅读量5.4k 收藏 5
点赞数 3
CC 4.0 BY-SA版权
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.youkuaiyun.com/DexLins/article/details/71774569

在为游戏接入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,签名安装测试


确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
sdk_jin
关注 关注
  • 3
    点赞
  • 踩
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
  • 分享
    复制链接
    分享到 QQ
    分享到新浪微博
    扫一扫
  • 举报
    举报
CARSIM-Dataset备份 cpar文件的导出和导入
qq_617498275的博客
06-16 137
摘要:本文介绍了备份导出功能的主要操作流程,包括点击导出按钮、选择文件类型、设置导出路径、查看导出结果等步骤,并验证了配置文件导入后的运行测试情况。该功能可实现数据备份与配置迁移,确保系统正常运行。
Keil编译生成的bin文件自动以版本号命名
zhang90283的博客
01-10 2783
通常代码里会有一个字段专门用来定义软件版本号,每次生成Hex/Bin文件后,要手动重命名文件名,保证和代码中定义的软件版本号一致,这时候就会觉得很麻烦,而且手动输入容易输错啥的。打开指定的源文件(.c/.h等),找到指定的定义软件版本号的字符(通常是用宏定义定义的),将指定的.bin、.hex文件拷贝到指定的目标文件夹,并以上一步获取的软件版本号命名。有的也用__DATA__和__TIME__(其中__DATE_ 和__TIME__是C语言中的内置宏,分别是当前的编译日期和编译时间),也可以。
1 条评论 您还未登录,请先 登录 后发表或查看评论
重新生成r.java,机器人 - 如何重新生成R.java文件?
weixin_35613582的博客
02-15 149
I have a one problem in my eclipse, I have done one project I want to put some images and videos. I drag and drop this images in drawable-hdpi. But when i come to my main.java and Write (R.drawable.) ...
android R 文件 丢失的处理 如何重新生成
热门推荐
davidtps的专栏
10-15 2万+
很多时候我们会遇到工程中的R.java文件丢失,必要急,修复很简单。 方法:右击你的工程(项目)——>Android Tools——>Fix Project Properties 即可。   这样做,有时候却不可以 达到效果,所以要保证,eclipse 的 自动构建功能开启 Build Automatically 如下图 还有一点重要的是,命名规则,资源的命名规
Android工程中R.java文件的重新生成——(注意资源文件的错误)
windren06的专栏
09-05 3213
在android中使用开源代码或者自动开发项目的时候,经常会遇到R.java文件丢失的情况,如何生成呢? 网上一般给出了两种方法: 方法 1:右击你的工程(项目)——>Android Tools——>Fix Project Properties 即可。 方法 2:右击你的工程(项目)——>Properties——>Android ——> 选择相应的target 然后 点击 app
Android二次打包之重新生成R文件
浅墨的博客
01-09 1495
安卓经常需要打多个渠道包,当二次打包时,资源ID会重新生成。如果代码中有第三方SDK通过直接引用R文件的方式来获取资源ID,就会出现资源ID不匹配的问题。本文主要介绍解决此类问题的三种方法。
R.java的重新生成
u014453894的专栏
03-15 2575
Android 在开发中会自动生成一个 R.java 文件 ,这个文件是自动生成的,最好不要去改。不过有时候这个 java 文件会跟我们捉迷藏,在程序中 R.xx.xxx 会出现经常报错现象。 1  对着工程点击鼠标右键 选择 Build Project,R.java 文件又回来。这样R.xx.xxx 就能 X 的出来了。   如果不行 试用第二种 方法 2 选择eclipse/m
Delphi Resource文件生成
11-22
缺点是:因为资源文件的加入从而加大了编译出的可执行程序的字节数,当资源文件较大时会使应用程序变得看起来雍肿。 使用资源文件的优点很显著,其缺点也很突出。所以在实际应用中就要根据情况权衡利弊、灵活使用,...
squashfs-toos源码,可以在window上cygwin环境下进行编译,生成exe文件;测试可以正常使用
12-23
编译完成后,你会在源码目录下的`bin`子目录中找到生成的exe文件,例如`squashfs.exe`和`unsquashfs.exe`。 7. **测试Squashfs-tools**: 使用`unsquashfs.exe`来解压一个.squashfs文件,验证编译的正确性和功能...
Keil编译自动生成定制的HEX文件
05-10 1896
实现了一个自动化功能,主要用于keil编译时对项目生成的.hex文件进行管理,并基于特定的版本号和当前编译时间对hex文件进行重命名。
编译生成的s19文件格式详解
09-02
编译生成的s19文件格式详解 S-record格式文件是一种ASCII码文件,通常以“.S19”作为扩展名,由Freescale CodeWarrior编译器生成。该文件格式主要用于烧写单片机(MCU),是一种 Motorola 格式的EEPROM 编程文件。...
重新生成r.java_Android工程中R.java文件的重新生成——注意资源文件的错误
weixin_39550379的博客
02-15 307
在Android中使用开源代码或者自己开发项目的时候,经常会遇到R.java文件丢失的情况,如何重新生成呢?网上一般给出这样的两种方法:方法 1:右击你的工程(项目)——>Android Tools——>Fix Project Properties 即可。方法 2:右击你的工程(项目)——>Properties——>Android ——> 选择相应的target 然后...
aapt 命令生成 R文件
qq_19942717的博客
03-23 3229
aapt.exe 命令使用
R文件的编译命名
二丁目的丰功笔记
05-09 683
R文件的编译命名   Android中资源编译之后,会产生一个R文件,所有的资源ID都是存储在这个文件中的的,默认我们看到所有的ID都有一个共同的特点,就是他们都是0x7F开头的,其实这个0x7F是包的ID值,我们在在解析resource.arsc文章中提到一点,Android中的id值其实是一个int类型,他的值由三部分组成:PackageId+TypeId+EntryId Pack
R文件
litefish的专栏
05-06 704
每个android工程都会有个gen目录,这个目录里的内容都是自动生成的,主要有一个R.java文件,你在项目中添加的任何资源都会在其中生成一个相应的资源id,是一个int值。这个文件永远不要手动去修改它。
Android R文件生成
依生依世
12-26 5735
Android R文件生成AAR主工程 Android在打包时,通过AAPT工具,对主工程和引入的依赖里的所有资源文件进行编译压缩,并会对res/里的资源文件如drawable、layout、values等生成唯一的id,同时生成R.java文件,保存所有的id值,以及生成resource.arsc文件,建立id对应资源的值(如string)或文件路径(如png)的关系表。 如上图是我们apk中...
生成R文件
weixin_30352191的博客
08-01 471
aapt package -f -m -J H:/workspaces/java_android/Test2/gen -S H:/workspaces/java_android/Test2/res -I L:/android-sdk-windows/platforms/android-8/android.jar -M H:/workspaces/java_android/Test2/Android...
R编译安装教程
超算小站
08-21 1613
简介 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。 官网地址:传送门。 编译 在集群上安装R环境,安装R-3.0.0版本的时候比较顺利,安装最新版本R-3.4.4的时候,由于依赖比较多且软件版本要求比较新,故需要预先安装很多包,否则报错。 我走通流程后将其记录如下: # 设置安装目录 R...
Android: 如何手工生成R.java文件?
liqingxu2005的专栏
06-23 1142
 Eclipse有时候不能生成R.java文件,非常烦人。这时候,我们可以手工生成它。   命令为: aapt package --non-constant-id -f -m -M   -S -I   -J<abs_path_to_dir_that_should_contain_gen_R_java)  --generate-depe
vs如何按目录结构编译生成中间文件
最新发布
06-14
用户希望根据目录结构编译生成中间文件,这意味着他可能想要控制中间文件(如.obj文件)的输出位置,使其与源文件的目录结构保持一致。在VisualStudio中,默认情况下,中间文件和输出文件(如.exe或.dll)都放在解决...
sdk_jin

博客等级

码龄10年
44
原创
13
点赞
30
收藏
6
粉丝
关注
私信

热门文章

  • Android 签名 v1,v2的区别及命令行查看apk签名信息 7502
  • Eclipse 导入.aar文件 5619
  • 重新编译生成R文件 5470
  • 获取CPS,CPA,CPD等非SDK联运渠道的逻辑渠道号 3536
  • 关于AS用点9图时遇到的错误的解决方法Error:Execution failed for task ':app:mergeDebugResources' 3507

分类专栏

  • android SDK
    8篇
上一篇:
apk手动签名
下一篇:
通过AndroidManifest配置来设计游戏的闪屏页

最新评论

  • aapt打包apktool.yml文件的sdkInfo丢失为null处理

    weixin_41391090: 最后解决了么 老铁

  • SDK动态设置自定义属性

    优快云-Ada助手: 推荐 Java 技能树:https://edu.youkuaiyun.com/skill/java?utm_source=AI_act_java

  • aapt打包apktool.yml文件的sdkInfo丢失为null处理

    wb_it_man: AndroidManifest里面配置了,gradle里面也有,但还是null

  • Android Studio 3以上内置支持Java 8的相关配置

    LaoYuanPython: 抢到沙发,谢谢分享! 原创不易,必须支持! 伙计,加油! 最后拉个票,本人正参与博客之星评选,1月24、25日每天都可投票,敬请支持!谢谢! 投票链接:[code=python] https://bss.youkuaiyun.com/m/topic/blog_star2020/detail?username=laoyuanpython [/code] 或到老猿博文首页内的置顶博文跳转!

  • Eclipse 导入.aar文件

    leishiying: 你好,请问里面的annotations.zip的文件,怎么加懂啊eclipse中?

大家在看

  • 束搜索(Beam Search):原理、演进与挑战
  • RepoCoder:仓库级代码补全的迭代检索生成框架解析与应用前沿 938
  • GPT-5深度解析:革命性AI模型的全面报告与实战指南
  • dll修复工具安装教程 1087
  • 计算机毕业设计 java 基于框架的商品推荐系统 基于 SSM 架构的智能商品推荐平台Java 开发的个性化商品推荐系统 401

最新文章

  • SDK动态设置自定义属性
  • shell 实现cp配置的so库文件夹,打包时相对应文件夹复制
  • Android Studio 3以上内置支持Java 8的相关配置
2022年1篇
2021年2篇
2020年6篇
2019年13篇
2018年4篇
2017年19篇

目录

展开全部

收起

目录

展开全部

收起

上一篇:
apk手动签名
下一篇:
通过AndroidManifest配置来设计游戏的闪屏页

分类专栏

  • android SDK
    8篇

展开全部 收起

目录

评论 1
被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言
查看更多评论
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值