高德解包和打包报错

news/2025/9/30 12:46:20/文章来源:https://www.cnblogs.com/dingshaohua/p/19120905

解包和打包报错

解包报错

PS D:\code\amapauto-editor\resources> java -jar apktool.jar d gaode.apk -f
I: Using Apktool 2.12.1 on gaode.apk with 8 threads
I: Baksmaling classes.dex...
I: Loading resource table...
I: Decoding file-resources...
I: Loading resource table from file: C:\Users\Administrator\AppData\Local\apktool\framework\1.apk
S: Could not decode file, replacing by FALSE value: anim/abc_slide_in_bottom.xml
S: Could not decode file, replacing by FALSE value: anim/abc_fade_in.xml
S: Could not decode file, replacing by FALSE value: anim/abc_slide_in_top.xml
S: Could not decode file, replacing by FALSE value: anim/activity_enter.xml
S: Could not decode file, replacing by FALSE value: anim/activity_exit.xml
S: Could not decode file, replacing by FALSE value: anim/abc_slide_out_top.xml
S: Could not decode file, replacing by FALSE value: anim/abc_fade_out.xml
S: Could not decode file, replacing by FALSE value: anim/abc_slide_out_bottom.xml
I: Decoding values */* XMLs...
I: Decoding AndroidManifest.xml with resources...
I: Copying original files...

打包报错

PS D:\code\amapauto-editor\resources> java -jar apktool.jar b gaode
I: Using Apktool 2.12.1 on gaode.apk with 8 threads
I: Checking whether sources have changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources have changed...
I: Building resources with aapt2...
W: D:\code\amapauto-editor\resources\gaode\res\values\anims.xml:3: error: invalid value for type 'anim'. Expected a reference.
W: D:\code\amapauto-editor\resources\gaode\res\values\anims.xml:4: error: invalid value for type 'anim'. Expected a reference.
W: D:\code\amapauto-editor\resources\gaode\res\values\anims.xml:5: error: invalid value for type 'anim'. Expected a reference.
W: D:\code\amapauto-editor\resources\gaode\res\values\anims.xml:6: error: invalid value for type 'anim'. Expected a reference.
W: D:\code\amapauto-editor\resources\gaode\res\values\anims.xml:7: error: invalid value for type 'anim'. Expected a reference.
W: D:\code\amapauto-editor\resources\gaode\res\values\anims.xml:8: error: invalid value for type 'anim'. Expected a reference.
W: D:\code\amapauto-editor\resources\gaode\res\values\anims.xml:9: error: invalid value for type 'anim'. Expected a reference.
W: D:\code\amapauto-editor\resources\gaode\res\values\anims.xml:10: error: invalid value for type 'anim'. Expected a reference.
W: D:\code\amapauto-editor\resources\gaode\res\values\anims.xml: error: file failed to compile.
Exception in thread "main" brut.androlib.exceptions.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\ADMINI~1\AppData\Local\Temp\brut_util_Jar_49951423408581740395031504976716335730.tmp, compile, --dir, D:\code\amapauto-editor\resources\gaode\res, --legacy, -o, D:\code\amapauto-editor\resources\gaode\build\resources.zip]at brut.androlib.AaptInvoker.invoke(SourceFile:105)at brut.androlib.ApkBuilder.buildResources(SourceFile:328)at brut.apktool.Main.main(SourceFile:96)
Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\ADMINI~1\AppData\Local\Temp\brut_util_Jar_49951423408581740395031504976716335730.tmp, compile, --dir, D:\code\amapauto-editor\resources\gaode\res, --legacy, -o, D:\code\amapauto-editor\resources\gaode\build\resources.zip]at brut.util.OS.exec(SourceFile:148)at brut.androlib.AaptInvoker.invoke(SourceFile:101)... 2 more

最终结论梳理

所以最后的出的结论是,apk解包的时候,apktool就会把apk打包所需的framework安装到本机上,比如windows在C:\Users\Administrator\AppData\Local\apktool\framework\1.apk。
所以不会存在版本不匹配问题!

编译出错,缺少资源是因为个别apk做了混淆或主动优化等导致,大部分的解包打包工具,都会内置对这些部分apk打包前的资源处理

Framework管理

  • 自动安装:Apktool在解包时自动安装所需framework到 C:\Users\Administrator\AppData\Local\apktool\framework\1.apk
  • 版本匹配:不会出现framework版本不匹配问题
  • 缓存重用:同版本APK共用已安装的framework

资源问题的本质

  • 不是Apktool的bug:而是APK自身的构建特性
  • 商业APK的常见策略
    • 资源混淆和优化
    • 动态资源加载
    • 多设备适配残留
    • 构建工具链差异

专业解包和打包工具的应对方案

// 商业化工具的内置修复逻辑
const builtInFixes = {'高德地图': () => fixAmapSpecificIssues(),'腾讯系APK': () => fixTencentResourceRefs(), '阿里系APK': () => fixAliResourcePatterns(),'通用修复': () => fixCommonXmlErrors()
};

用户体验目标

  • 零配置:用户不需要懂framework、资源修复
  • 自动处理:工具内置各种常见APK的修复规则
  • 透明操作:在后台静默处理,只给用户成功/失败的结果

这就是为什么像APK Easy Tool、MT Manager这类工具能够"一键解包打包"的原因,它们都在底层内置了这些修复逻辑!

现在你可以 confidently 告诉用户:"这是正常现象,我们的工具会自动处理"。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922842.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用友U8Api 接口对接

U8 API接口集成主要用于第三方系统与用友U8ERP系统进行数据交互,实现业务系统对接 文档中接口集成了用友U8各个版本的数据对接功能,支持U8.9到 U818.0版本要求,摒弃了eai、openapi、api、暴力插库等接口的方式,全部…

实用指南:如何在WordPress中添加短代码

实用指南:如何在WordPress中添加短代码pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

填坑:VC++ 采用OpenSSL 3.0接口方式生成RSA密钥 - 教程

填坑:VC++ 采用OpenSSL 3.0接口方式生成RSA密钥 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

JUC:AQS

AbstractQueuedSynchronizer AQS重要性: Java => JVM JUC => AQS 4.11.1 前置知识公平锁和非公平锁 可重入锁 自旋思想 LockSupport 双向链表数据结构 模板设计模式4.11.2 AQS入门级理论知识AQS定义抽象的队列同…

CF1980F2 Field Division (hard version) 题解

Sol 注意到如果允许走没有限制边境的点答案一定不变,所以只考虑修改在边境上的点即可。 然后再注意到一个点边境上的点如果变成可通信的,那么每个不在边境上的点只会变成了边境上的点至多 \(2\) 次。 所以暴力即可。…

JUC:ThreadLocal

4.8 ThreadLocal 线程局部变量。 4.8.1 常见面试题ThreadLocal中ThreadLocalMap的数据结构和关系? ThreadLocal的key是弱引用,为什么? ThreadLocal内存泄漏问题是什么? ThreadLocal中最后为什么要加remove方法?4.…

广义串并联图とP6790 [SNOI2020] 生成树

广义串并联图とP6790 [SNOI2020] 生成树 前置知识:广义串并联图 定义广义串并联图为不存在与 \(K_4\)(即 \(4\) 个点的完全图)同胚的子图的连通无向图(同胚是指可以通过边的放缩而互相转化的图,即 \((x\leftright…

Manim实现波浪形文字特效

本文将介绍如何使用Manim实现波浪形文字特效,通过自定义动画类让文字产生波浪般的动态效果。 1. 实现原理 波浪形文字特效的核心是通过自定义Animation类,对文本对象中的每个字符应用不同的位置偏移,从而形成波浪效…

网站开发电子书网站ip地址 转向域名

内容简要 1分析网站 2简单爬取 3进阶自定义爬取 4保存进数据库 学校基础设施太差,宿舍电量过低提醒虽然贴在楼下,但是作为低头一族,经常忘记看提醒导致宿舍酣战时突然黑屏,为了避免这种尴尬的场景以及强化PY学习,我决定…

JUC: synchronized与锁升级

4.10.1 面试题谈谈你对synchronized的理解 synchronized的锁升级机制是什么? 偏向锁和轻量锁有什么区别?高并发时,同步调用应该去考量锁的性能损耗。能用无锁的数据结构,就不要用锁。能用锁块,就不要锁整个方法体…

cron表达式,每月1号凌晨3点执行和每周4凌晨3点半执行

cron表达式,每月1号凌晨3点执行和每周4凌晨3点半执行cron表达式,每月1号凌晨3点执行和每周4凌晨3点半执行 1.每月1号凌晨3点执行的Cron表达式为:0 0 3 1 * ? 每个月1号 凌晨3点   0 0 3 1 * ? 和 0 0 3 1 …

学python的第8天

学python的第8天字符编码 水导链接——字符编码 水导链接——Python2和3字符编码的区别 文件基本操作 从硬盘中读取数据、写入数据 水导链接——文件基本操作 绝对路径和相对路径 水导链接——绝对路径和相对路径 文件…

2025.9.30

坐火车回家

lang / philipino / feilvbin / taglog / tajialu

s菲语 翻译magandang tanghali 下午好end

C#/.NET/.NET Core技术前沿周刊 | 第 56 期(2025年9.22-9.28)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与…

漳州做网站建设的公司做网站 赚广告费

作为当下大语言模型的典型代表,ChatGPT对人类学习方式和教育发展所产生的变革效应已然引起了广泛关注。技术的快速发展在某种程度上正在“倒逼”教育领域开启更深层次的变革。在此背景下,教育从业者势必要学会准确识变、科学应变、主动求变、以变应变&am…

US$249 Autek IKEY820 New License for GM, Grand Cheokee and Dodge Durango Key Programming

Autek IKEY820 New License for GM, Grand Cheokee and Dodge Durango Key ProgrammingWith this license, Autek IKEY820 can support new car models as below:1. Added 2018 Buick LaCrosse Pincode and Key Progra…

Estun机器人数据断电保持问题解决方案

Estun机器人数据断电保持问题解决方案要数据断电保持: 1.变量必须为全局变量 2.用等号做赋值运算

天津港口海鲜之旅全攻略(2025最新版)

🦀 天津港口海鲜之旅全攻略(2025最新版) 天津不仅是工业重镇,更是海鲜爱好者的天堂!每年9月开海后,正是吃海鲜、出海捕鱼的黄金时节。以下是为你整理的天津港口海鲜之旅全攻略,涵盖出海码头、海鲜购买、美食推…

tomcat创建bat启动,结合任务计划实现自动重启tomcat服务 - 详解

tomcat创建bat启动,结合任务计划实现自动重启tomcat服务 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…