Andoid app三方库权限位置查找和处理

Posted 一叶飘舟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Andoid app三方库权限位置查找和处理相关的知识,希望对你有一定的参考价值。

查找方案:

第一种方法:使用AS Find in Path(Eclipse模式快捷键Crtl+H)全局搜索功能,选择搜索范围为scope,就能看到所搜权限在三方库中的位置,速度最快。

第二种方法:打包过程中,会在build\\outputs\\logs文件夹中生成log文件,在log文件中搜索权限,可以对应到具体三方库,比第一种方案精确度更好。

可以通过AS项目中的External Libraries找到权限所在的三方库,然后右键选择项目Properties来查看库下载到本机的位置,

找到aar文件,解压缩就可以看到menifest文件,这一步是做一下二次确认。

处理方案:

(1)如果权限是敏感权限,就要考虑是否使用该库,或者替换库的版本来规避。

(2)如果无法规避,又一定不能有该权限,可以通过manifest 文件权限声明tools:node="remove"来强制排除该权限的申请。

一定要保证sdk无此权限也能正常运行且不影响功能,否则的话,还需在应用中申请此权限。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xxx">

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove"/>

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove"/>

</manifest>

 

(3)也有一种情况是使用的三方库未限制最低支持得anroid版本,这种情况下会自动申请READ_PHONE_STATE这一敏感权限。

以上是关于Andoid app三方库权限位置查找和处理的主要内容,如果未能解决你的问题,请参考以下文章

错误记录Android 应用配置第三方 so 动态库 ( /data/app/comxxx==/base.apk/lib/arm64-v8a]couldn‘t find “libx.so“ )(代码片

查找 std::vector.at() 抛出 std::out_of_range 的位置

Andoid之硬件访问服务1(让Andoid应用程序访问c库)

版本过低怎么升级andoid相册

自动处理键盘事件的第三方库 IQKeyboardManager

Linux下的find的使用方法