我尝试使用android.buildToolsVersion = 27构建应用。 构建和安装成功,但是在启动时失败:
E / DatabaseUtils(2346):java.lang.SecurityException:权限 拒绝:用户的获取/设置设置要求以用户-2的身份运行但正在调用 来自用户0;这需要 android.permission.INTERACT_ACROSS_USERS_FULL E / DatabaseUtils(2346): 在 com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13140) E / DatabaseUtils(2346):在 android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038) E / DatabaseUtils(2346):在 com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:607) E / DatabaseUtils(2346):在 android.content.ContentProvider $ Transport.call(ContentProvider.java:279) E / DatabaseUtils(2346):在 android.content.ContentProviderNative.onTransact(ContentProviderNative.java:273) E / DatabaseUtils(2346):在 android.os.Binder.execTransact(Binder.java:388)E / DatabaseUtils( 2346):在dalvik.system.NativeStart.run(本机方法) W / ActivityManager(2346):权限拒绝:用户的获取/设置设置 要求以用户-2的身份运行,但正在从用户0调用;这需要 android.permission.INTERACT_ACROSS_USERS_FULL
还尝试将android.targetSDKVersion设置为27、25和23,结果相同。
我已将其添加到android.xpermissions中,结果相同:
<permission android:protectionLevel="signature" android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
以前,我使用了android.buildToolsVersion = 25,但未指定android.targetSDKVersion,并且一切正常。此设置仍然有效,但是我想迁移到较新的版本。
我正在使用具有Android 4.3的Samsung Galaxy S3
有帮助吗?
谢谢
答案 0 :(得分:1)
没有OEM签名,您无法添加该权限。您正在使用在4.x时代有效的API,例如让用户沙箱以可读/写方式在任意位置打开数据库。 -2本质上是您的应用程序特权,而用户0则是设备所有者特权。你可能拿不到那些。
答案是Google不再允许您这样做。您可以定位较早的API级别,但如果您这样做,那么Google不会接受您进入Play商店。
答案 1 :(得分:0)
崩溃不是由此错误引起的,而是由另一个错误引起的,原因是以下事实:在构建api级别27时,对v4的支持被删除,而我正在使用它来获取gcm令牌。我已经在这里记录了所有内容:CodenameOne - Android app fails to start when building with android.buildToolsVersion=27