apk去机型验证方法

适用场景

适用于部分出现错误的应用

Package  requires unavailable shared library xxx; failing!

步骤

以索尼相册为例,直接安装apk安装会失败,用爱adb安装会出现如下错误

Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY: Package couldn't be installed in /data/app/com.sonyericsson.album-1: Package com.sonyericsson.album requires unavailable shared library com.sony.device; failing!]

无法找到com.sony.device,安装时报错,一定是在AndroidManifest中做了手脚,顺着这个思路,首先利用apktool或其它反编译apk

java -jar apktool_2.2.2.jar d com.sonyericsson.album_8.0.A.1.18_16778258.apk -o out

找到AndroidManifest.xml,果然发现在Application标签中发现了下面代码

<uses-library android:name="com.sony.device" android:required="true"/>

uses-library用于指定该应用程序必须链接的共享类库,删掉这行代码,利用apktool进行回编译,

java -jar apktool_2.2.2.jar b out out.apk

之后再利用jarsigner进行签名(注意参数之间的空格),

jarsigner -verbose -keystore debug.keystore -signedjar out_signed.apk out.apk debug.keystore

用adb进行安装,成功安装在了nexus5x上,并且可以成功运行。另外解除限制的同时还可以对资源文件进行精简,减小安装包大小。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容