我在Android中遇到了sqlite db的问题.但是当我在互联网上进行快速研究时,我怀疑这个问题与sqlite无关,而与系统用户无关.我的应用程序未被识别为访问数据库功能的授权用户.我尝试在堆栈溢出中应用可能的建议解决方案,但它们都没有区别.这是我每次尝试使用数据库功能时遇到的LogCat.
12-14 02:35:17.721 2953-3355/? E/DatabaseUtils? Writing exception to parcel
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
at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13082)
at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038)
at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:577)
at android.content.ContentProvider$Transport.call(ContentProvider.java:279)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:273)
at android.os.Binder.execTransact(Binder.java:388)
at dalvik.system.NativeStart.run(Native Method)
Run Code Online (Sandbox Code Playgroud)
我试图添加权限
android.permission.INTERACT_ACROSS_USERS_FULL
Run Code Online (Sandbox Code Playgroud)
但仍然没有声音.奇怪的是当我尝试添加INTERNET权限Android Studio 0.3(我使用的是ide)建议我可以选择的权限.但是当谈到INTERACT_ACROSS_USERS_FULL权限时,它的行为就像它不知道这个权限.我的测试设备是在4.3上运行的三星S4.
我假设我不是唯一一个尝试在android上使用db的人.所以有一个解决方案.
我怎样才能真正为我的应用程序添加INTERACT_ACROSS_USERS_FULL权限?
Android O具有支持字段自动填充的功能.有什么办法可以为特定的应用程序禁用它.那是我想强制我的应用程序不使用自动填充服务.
可能吗 ?
要阻止整个活动的自动填充,请在活动的onCreate()中使用:
getWindow()
.getDecorView()
.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
Run Code Online (Sandbox Code Playgroud)
有没有比这更好的方法?
android autofill textview android-8.0-oreo android-autofill-manager
我有一个奇怪的Android权限拒绝,这是它:
java.lang.SecurityException: Permission Denial: isUserRunning() from pid=1078, uid=10284 requires android.permission.INTERACT_ACROSS_USERS
Run Code Online (Sandbox Code Playgroud)
我还没有发现任何关于android.permission.INTERACT_ACROSS_USERS只android.permission.INTERACT_ACROSS_USERS_FULL
这是完整的logcat:
java.lang.SecurityException: Permission Denial: isUserRunning() from pid=25403, uid=10310 requires android.permission.INTERACT_ACROSS_USERS
at android.os.Parcel.readException(Parcel.java:1693)
at android.os.Parcel.readException(Parcel.java:1646)
at android.app.ActivityManagerProxy.isUserRunning(ActivityManagerNative.java:7000)
at android.os.UserManager.isUserUnlocked(UserManager.java:1069)
at android.os.UserManager.isUserUnlocked(UserManager.java:1063)
at com.android.launcher3.compat.UserManagerCompatVN.isUserUnlocked(UserManagerCompatVN.java:39)
at com.android.launcher3.LauncherModel$LoaderTask.loadWorkspace(LauncherModel.java:1759)
at com.android.launcher3.LauncherModel$LoaderTask.loadAndBindWorkspace(LauncherModel.java:1387)
at com.android.launcher3.LauncherModel$LoaderTask.run(LauncherModel.java:1486)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
Run Code Online (Sandbox Code Playgroud)
我已将此添加到我的清单中:
<permission android:name="android.permission.INTERACT_ACROSS_USERS" android:protectionLevel="signature"/>
<permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/>
Run Code Online (Sandbox Code Playgroud) 我有一个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)
Run Code Online (Sandbox Code Playgroud)
它甚至没有得到扩展Application的类的代码......
似乎这个问题非常普遍(许多人已经报道过这个问题),但我找不到任何解决方案以及为什么会出现这种情况,除了拥有一个有根设备.
人们还说这里写的权限实际上是一个系统权限,但我从来没有听说过它,更不用说使用它了(甚至不确定它是什么). …
当我尝试使用android'am'命令启动一个活动时,它在4.2平台下是错误的(我试过,在2.3版本下它没问题).代码是这样的
out = process.getOutputStream();
out.write(("am start -a android.intent.action.VIEW -n com.android.browser/com.android.browser.BrowserActivity\n").getBytes());
out.flush();
InputStream in = process.getInputStream();
BufferedReader re = new BufferedReader(new InputStreamReader(in));
String line = null;
while((line = re.readLine()) != null) {
Log.d("conio","[result]"+line);
}
Run Code Online (Sandbox Code Playgroud)
而错误是这样的:
java.lang.SecurityException: Permission Denial: startActivity asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
at android.os.Parcel.readException(Parcel.java:1425)
at android.os.Parcel.readException(Parcel.java:1379)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:1921)
at com.android.commands.am.Am.runStart(Am.java:494)
at com.android.commands.am.Am.run(Am.java:109)
at com.android.commands.am.Am.main(Am.java:82)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
我想知道
1.用户-2和0是什么意思?
2.我可以在哪里找到有关这些ID的详细信息?
3.我该怎么办,只需添加权限?我不想添加我对他们一无所知的权限.任何人都可以帮助我,非常感谢!
我正在努力将micode的开源指南针集成到我正在制作的应用程序中.我想知道如何在我的清单中明确说明正确的拼写时如何解决此权限错误.它仍然出现,我需要这个许可.
这令我感到困惑......
11-03 13:53:58.241: E/AndroidRuntime(8975): Caused by: \
java.lang.SecurityException: Permission Denial: registerReceiver from \
net.micode.compass asks to run as user -1 but is calling from user 0; this \
requires android.permission.INTERACT_ACROSS_USERS_FULL
Run Code Online (Sandbox Code Playgroud) 问题是在将我的手机从 Android 8 更新到 9 时开始的。该应用程序之前运行良好。
我试图通过包含相同的依赖项/配置在我正在开发的其他应用程序中复制这一点,但我无法复制该行为。它总是在 setContentView 崩溃,即使是简单的活动和简单的布局。
我做了我的研究并得出结论,INTERACT_ACROSS_USERS_FULL许可不是问题的真正原因。
这种崩溃实际上发生在所有应用程序活动中,但 TestActivity 是最简单的。在运行 API 28 的三星 S9+ 和运行 Android 9、API 28 的像素模拟器上进行测试。
编辑:当我将 android:name="...." 属性放入清单定义时,这似乎会发生。由于我真的需要应用程序类,我仍在寻找解决方案来完成这项工作。
活动(简化为具有崩溃所需的最少代码):
Run Code Online (Sandbox Code Playgroud)package com.marhat.albatros import android.os.Bundle import androidx.appcompat.app.AppCompatActivity; class TestActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_test) } }
布局:
Run Code Online (Sandbox Code Playgroud)<?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".TestActivity"> </androidx.coordinatorlayout.widget.CoordinatorLayout>
这是输出:
Run Code Online (Sandbox Code Playgroud)2019-02-08 11:54:19.088 20298-20298/com.marhat.albatros E/AndroidRuntime: FATAL EXCEPTION: main Process: com.marhat.albatros, PID: 20298 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.marhat.albatros/com.marhat.albatros.TestActivity}:java.lang.SecurityException:从用户 0 …
我在我的应用程序中应用了指纹集成,以使用指纹登录。
将应用程序公开发布后,我看到了由此导致的Fabric's Crashlytics生成的数百个崩溃报告,如下所示:
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.xxxxx/com.xxx.xxxxx.LoginActivity}: java.lang.SecurityException: Permission Denial: getCurrentUser() from pid=26824, uid=10144 requires android.permission.INTERACT_ACROSS_USERS
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3319)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
at android.app.ActivityThread.access$1100(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7406)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Run Code Online (Sandbox Code Playgroud)
奇怪的是,所有崩溃仅在Samsung设备上发生!
银河J7 57%
SM-J327P 9%
银河A5 7%
SM-G532F 7%
银河J5 1%
Galaxy S6 Edge 1%
清单文件已具有以下权限:
<permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/>
Run Code Online (Sandbox Code Playgroud)
有什么建议如何跟踪/解决此问题?我手边没有上述任何设备:/
谢谢。
我无法从Android Studio 3.4.1在三星设备上运行项目。Studio在对话框中给我以下错误消息
Installation failed with message 'cmd package install-create -r -t -S 1686629' returns error 'Unknown failure: Security exception: Permission Denial: runInstallCreate from pm command asks to run as user -1 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
java.lang.SecurityException: Permission Denial: runInstallCreate from pm command asks to run as user -1 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
at com.android.server.am.UserController.handleIncomingUser(UserController.java:1827)
at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:25069)
at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:4848)
at com.android.server.pm.PackageManagerShellCommand.translateUserId(PackageManagerShellCommand.java:2402)
at com.android.server.pm.PackageManagerShellCommand.doCreateSession(PackageManagerShellCommand.java:2408)
Run Code Online (Sandbox Code Playgroud)
我尝试了消息中提到的修复程序,即在清单文件中添加权限,但是运行时错误仍然消失了。
请注意,该项目正在构建中,没有错误。
我该如何解决?
我的系统详细信息
发行者ID:Ubuntu说明:Ubuntu 18.04.2 LTS版本:18.04代号:bionic …