Android Studio Analyze APK 一直显示 Parsing Manifest探因及解决

2023-11-26 07:50

本文主要是介绍Android Studio Analyze APK 一直显示 Parsing Manifest探因及解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、背景

大家都知道,Android Studio开发工具自带了Analyze Apk,可以很方便的分析Apk文件。具体位于菜单build >> Analyze APK...路径下,点击后可以选择目标路径下的Apk文件,甚至可以直接将目标APK文件直接拖拽到Android Studio中,不到几秒中时间,马上就会生成对应的分析结果。

例如,微信Apk分析结果是这样的:

又如,支付宝Apk分析结果:

瞬间感觉自己很niubility,有没有?

有时候,我们也经常用它来分析自己的Apk,例如,生成的安装包到底长什么样子,里面的资源/代码构成,Manifest中配置是否如预期,又或者方法数,等等。但是,一次突然的机会,发现自己开发的Ap分析不了,一直处于Parsing Manifest状态。

一脸懵逼,有木有?

二、探因

这个问题曾经困惑了我不少时间,之前也没有具体去研究过。现在又遇到了。瞬间想到鲁迅说的一句话:

技术路上,会遇到很多看似莫名其妙的问题,细心探究,解决了,就是成长。
无视它并避让过去,看似绕过了问题,实际上失去了一次很好的技术历练的机会,
并且下次很可能还会遇到类似的,甚至一样的问题,长期看将是困难和停滞。

既然先辈都这样说了,那就,那硬着头皮解一下?

2.1 AS日志

现在给人的感觉是Analyze APK执行过程中直接停住了,后者长时间一直在分析。但不管怎样,毕竟是在AS中的操作,先查一下对应的AS日志,看看有没Parsing Manifest或相关的日志信息,可以起到帮助的。

Help >> Show Log in Finder,打开日志,对应时间点看了又看,没找到Parsing Manifest直接相关的,不过,找到了控件显示先关的日志:

2019-08-08 19:21:25,323 [entQueue-0]   INFO - ools.idea.apk.viewer.ApkEditor - Disposing ApkEditor with ApkViewPanel: com.android.tools.idea.apk.viewer.ApkViewPanel@7a608115 
2019-08-08 19:21:25,323 [entQueue-0]   INFO - s.idea.apk.viewer.ApkViewPanel - Cleared Archive on ApkViewPanel: com.android.tools.idea.apk.viewer.ApkViewPanel@7a608115

从日志里面可以看出来,AS中对应的Analyze Apk相关的类名有ApkEditorApkViewPanel,包名是com.android.tools.idea.apk.viewer。AS日志部分的有效信息只有这么多了。

2.2 系统全局搜索

AS日志中没有,那有没有可能存在有效的信息输出在了系统其它的地方?于是,直接花点时间,系统全局搜索下。

/ grep -rnl "Parsing Manifest" *

输出信息中有一些警告信息之类的,最终在输出信息中找到了个相关的:

Applications/Android Studio.app/Contents/plugins/android/lib/android.jar

看目录名,大概是AS插件中对应的Android相关的lib工具包。找到对应位置,用JD-GUI打开对应的jar文件,具体看下一下。

通过全局搜索关键字Parsing

这篇关于Android Studio Analyze APK 一直显示 Parsing Manifest探因及解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/425346

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo