我尝试使用 android.buildToolsVersion=27 构建我的应用程序。 构建和安装成功,但在启动时失败:
E/DatabaseUtils( 2346): java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL E/DatabaseUtils( 2346): at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13140) E/DatabaseUtils( 2346): at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038) E/DatabaseUtils( 2346): at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:607) E/DatabaseUtils( 2346): at android.content.ContentProvider$Transport.call(ContentProvider.java:279) E/DatabaseUtils( 2346): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:273) E/DatabaseUtils( 2346): at android.os.Binder.execTransact(Binder.java:388) E/DatabaseUtils( 2346): at dalvik.system.NativeStart.run(Native Method) W/ActivityManager( 2346): Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires 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 的三星 Galaxy S3
有什么帮助吗?
谢谢
最佳答案
如果没有 OEM 签名,您将无法添加该权限。您正在使用在 4.x 时代工作的 API,例如离开用户沙箱以在任意位置以读/写方式打开数据库。 -2 本质上是您的应用程序权限,而用户 0 表示设备所有者权限。您可能无法获得这些。
答案是谷歌不再允许你这样做。您可以针对较旧的 API 级别,但如果您这样做,Google 将不会接受您进入 Play 商店。
关于android - CodenameOne - android.buildToolsVersion=27 的 Android 权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52170575/