当我将apk上传到Google Play时,我注意到了READ_PHONE_STATE权限。 我没有添加它,它没有写在我的清单或我的项目的任何其他文件中的任何地方。 (我查看了所有图书馆的许可)
我的应用在我以前使用相同库的版本中没有此权限。自上次构建以来,我将android studio更新为版本1,更新了我的android sdk并对我的应用程序进行了一些更改(代码中)。我没有在我的应用中请求设备ID。
我的应用有minSDK 14,没有广告。 以下是我的明确权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
这里是apk file
答案 0 :(得分:13)
我能够解决问题。它类似于reneph的解决方案。
我发现一个库在build.gradle和manifest文件中都没有指定minSDK。添加后
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}
许可证已经消失了。我不知道为什么它没有我之前构建的许可(也没有指定minSDK)。必须是Android Studio 1.0或Android SDK更新。
READ_PHONE_STATE
权限的Android开发人员文档:
注意:如果您的
minSdkVersion
和targetSdkVersion
值都设置为3或更低,系统会隐式授予您的应用此权限。如果您不需要此权限,请确保targetSdkVersion
为4或更高。
答案 1 :(得分:1)
我发现了这个问题。
我有另一个包含minSdkVersion="4"
的库(它不是我的库,但我的应用需要minSdkVersion="14"
)。
我刚刚将附加库的minSdkVersion
更改为14,许可消失了!
我在我的应用中声明了以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="com.android.vending.BILLING" /> <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <permission-group android:name="android.permission-group.STORAGE" />
答案 2 :(得分:0)
---为我工作!- 我在清单上尝试了很多事情,这里和其他论坛都提到过。
最后,我注意到该错误消息,apk上载错误消息希望将“隐私策略URL”添加到“商品详情/隐私政策”部分。 (选中了“当前不提交隐私政策URL”)。
因此,我从我的网站添加我的隐私政策URL,然后提交。后来,我成功上传了我的apk。
答案 3 :(得分:0)
一个原因可能是(传递)依赖项,即库,它声明低于4的Android SDK最低要求级别。在这种情况下,“清单合并工具”将隐式添加这些权限。
Lower-priority manifest declares Permissions added to the merged manifest
targetSdkVersion <= 3 WRITE_EXTERNAL_STORAGE, READ_PHONE_STATE
targetSdkVersion <= 15 and using READ_CONTACTS READ_CALL_LOG
targetSdkVersion <= 15 and using WRITE_CONTACTS WRITE_CALL_LOG
来源:https://developer.android.com/studio/build/manifest-merge#implicit_system_permissions
如果是这种情况,请查看manifest-merger-*-report.txt
中的build/outputs/logs
日志。