背景
我有一个已经ROOT的设备,Galaxy S3 I9300,使用的是基于Android 4.3的三星原生ROM。
在这个设备上运行我正在开发的应用程序时,从未出现过任何问题。
问题
自昨天以来(我并没有更改设备上的任何内容),每次打开应用程序时,它会显示很短的时间,然后自动关闭,没有任何崩溃对话框,但它会显示下一个日志:
01-30 09:27:18.325: E/DatabaseUtils(2366): Writing exception to parcel
01-30 09:27:18.325: E/DatabaseUtils(2366): 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
01-30 09:27:18.325: E/DatabaseUtils(2366): at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13140)
01-30 09:27:18.325: E/DatabaseUtils(2366): at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038)
01-30 09:27:18.325: E/DatabaseUtils(2366): at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:607)
01-30 09:27:18.325: E/DatabaseUtils(2366): at android.content.ContentProvider$Transport.call(ContentProvider.java:279)
01-30 09:27:18.325: E/DatabaseUtils(2366): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:273)
01-30 09:27:18.325: E/DatabaseUtils(2366): at android.os.Binder.execTransact(Binder.java:388)
01-30 09:27:18.325: E/DatabaseUtils(2366): at dalvik.system.NativeStart.run(Native Method)
它甚至没有进入扩展Application类的代码...
我发现的问题
这个问题似乎很常见(许多人报告了它),但我找不到除了具有root权限之外的任何解决方法和原因。
人们还说这里写的权限实际上是系统权限,但我甚至从未听说过它,更不用说使用它了(甚至不确定它是什么)。
问题是,我正在开发的应用程序与root无关,而且它几天前还能工作。
我尝试重新安装ROM(Omega ROM v54),并禁用与xposed框架相关的任何内容。但这些都没有帮助。
问题
我该如何解决这个问题?我怎样才能知道其他用户不会遇到此问题?
这是否与已获取root权限的设备有关?
编辑:我认为我找到了一个解决方法,可以在设置屏幕的开发人员部分中选择“撤消USB调试...”。一开始似乎有效,但后来问题又出现了,点击也没有任何帮助...
编辑:我认为这只是应用程序或ROM本身的错误,因为我再也无法重现它了。这非常奇怪,因为我几乎可以确定我曾尝试调试应用程序,并在acitivity的onCreate方法(以及可能是应用程序类本身的onCreate方法)上设置了断点,但它没有停在那里。