写点什么

从一个被应用商店坑了的 BUG 说起

作者:IT蜗壳-Tango
  • 2022 年 6 月 29 日
  • 本文字数:976 字

    阅读完需:约 3 分钟

从一个被应用商店坑了的BUG说起

今天在做 APP 的自动化测试的时候,心血来潮将 Case 的开发机器切换成了红米 9A 这款机器。然后就开始了我一个找 BUG 原因的一天。

BUG 描述

最近产品上了一个新版本,最为自动化测试的负责人,要开始针对这个新版的特性进行相关测试用例的开发,由于另外的一台设备正则忙碌的运行着回归测试的自动化,于是我拿出了这台红米手机。连上数据线,打开 CMD,输入了以下命令,查看是否正常链接。

adb devices
复制代码


一切就绪,打开 IDEA,开始编写自动化测试的用例代码,很快,就完成了一个用例的编写。来,我们运行一下看看。

哎呀,怎么出错了呢,刚刚还是正常的啊,没有修改环境,只是换了一个手机而已啊,咋就不行了呢。

手动通过 adb 命令安装一下看看。

adb install xxxxxxxx.apk
复制代码


安装不上,换一个版本试试

咦?旧版本可以的,那就不是手机坏了。去查查这个错误编号是啥意思

INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113

原因是某些应用使用了原生库(NDK,Native Lib),这些库的编译目标通常是 arm 架构的 cpu,在 x86 上运行就会报这样的错误。

盲猜是开发在编译代码的时候修改了编译配置,但是这个文件一般也不会无缘无故的修改啊,这不是给自己找事干吗?

问题定位

就当我把 BUG 票都写好了的瞬间看到了一个这样通知。

于是上网上搜索了一下,不单单是华为其他厂商的应用商店都有类似的规定了。好巧不巧,开发在这个版本修改了这段的配置,改成了纯 64 位编译

就是说从之前的

android {    defaultConfig {         ndk{            // 打包生成的 APK 文件指挥包含 ARM 指令集的动态库            abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"        }    }}
复制代码

改成了

android {    defaultConfig {         ndk{            // 打包生成的 APK 文件指挥包含 ARM 指令集的动态库            abiFilters "x86_64"        }    }}
复制代码


那我的手机的配置是什么样的呢?通过 ADB 查看一下

adb shell getprop ro.product.cpu.abi
复制代码


这不就找到原因了吗!

然后查了一下,这个手机的 CPU 相关的内容,平时查技术文章不怎么上某度,但是这样的文章某度还是很多的。


总而言之,即使我这台手机以后就告别自动化开发的舞台了,也许还可以用来测试一下小程序啥的吧,也不行!微信不也得升级吗!


如果今天的这篇文章对你有所帮助,欢迎转发给你的朋友。


我是 Tango,一个热爱分享技术的程序猿,我们下期见。

发布于: 20 小时前阅读数: 37
用户头像

一个日语专业的程序猿。 2017.09.10 加入

【坐标】无锡 【软件技能】Java,C#,Python 【爱好】炉石传说 【称号】InfoQ年度人气作者,Intel OpenVINO领航者联盟成员 【B站】https://space.bilibili.com/397260706/ 【个人站】www.it-worker.club

评论

发布
暂无评论
从一个被应用商店坑了的BUG说起_自动化测试_IT蜗壳-Tango_InfoQ写作社区