【问题标题】:Android: Why is android.permission.ACCESS_WIFI_STATE automatically added to my signed apk build?Android:为什么 android.permission.ACCESS_WIFI_STATE 会自动添加到我签名的 apk 构建中?
【发布时间】:2016-01-06 08:39:50
【问题描述】:

我的应用使用了几个权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

and:
android:permission="com.google.android.c2dm.permission.SEND">

昨天我上传了一个新版本到谷歌播放,不知何故

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

已添加,因此用户不会自动更新我的应用,但必须先授予权限。我不希望将此权限添加到我的项目中,但我不知道如何删除它,因为预构建它在我的代码中的任何地方都没有请求。

有人有什么建议吗?

【问题讨论】:

  • 您必须将库项目用作需要该权限的依赖项,并且您已在项目属性中启用 manifestmerger 属性 true。
  • 确实我发现我正在使用一个库作为使用权限的依赖项,但没有 project.properties 文件(在 android studio 中)。我试图弄清楚如何通过帖子省略权限,例如:stackoverflow.com/questions/13937123/…,但到目前为止还无法使其正常工作。
  • 我猜您不想删除该属性,因为它会使库毫无用处。如果您不想要库中的功能,那么只需删除库依赖项即可。

标签: android android-wifi android-permissions


【解决方案1】:

我可以通过添加删除权限:

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

另外@Arnav:我没有使用需要此权限的库的任何功能,因此删除不会导致任何问题。

【讨论】:

  • 我有同样的问题,但面临运行时构建错误 > WifiService: 用户 10412 和当前进程都没有权限 android.permission.ACCESS_WIFI_STATE 当我执行grep -ir "ACCESS_WIFI_STATE" 时,我发现这个权限潜入我的决赛AndroidManifest.xml:&lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/&gt;
【解决方案2】:

需要使用作为依赖项的库项目,因为这需要该权限。您已在项目属性 () 中启用 manifestmerger 属性 true,因此可能会出现此问题。

此权限可按如下方式移除:

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

【讨论】:

    猜你喜欢
    • 2019-05-09
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    相关资源
    最近更新 更多