Google地图和java.lang.SecurityException

Google地图和java.lang.SecurityException,java,android,google-maps,Java,Android,Google Maps,02-14 13:09:38.184:E/DatabaseUtils(2348):向包裹写入异常 02-14 13:09:38.184:E/数据库工具(2348): java.lang.SecurityException:权限拒绝:获取/设置的设置 用户要求以用户-2身份运行,但正在从用户0呼叫;这需要 android.permission.interaction\u跨用户\u FULL 02-14 13:09:38.184: E/DatabaseUtils(2348):位于 com.andro

02-14 13:09:38.184:E/DatabaseUtils(2348):向包裹写入异常 02-14 13:09:38.184:E/数据库工具(2348): java.lang.SecurityException:权限拒绝:获取/设置的设置 用户要求以用户-2身份运行,但正在从用户0呼叫;这需要 android.permission.interaction\u跨用户\u FULL 02-14 13:09:38.184: E/DatabaseUtils(2348):位于 com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13140) 02-14 13:09:38.184:E/DatabaseUtils(2348):在 android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038) 02-14 13:09:38.184:E/DatabaseUtils(2348):在 com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:607) 02-14 13:09:38.184:E/DatabaseUtils(2348):在 ContentProvider$Transport.call(ContentProvider.java:279) 02-14 13:09:38.184:E/DatabaseUtils(2348):在 onTransact(ContentProviderNative.java:273) 02-14 13:09:38.184:E/DatabaseUtils(2348):在 android.os.Binder.execTransact(Binder.java:388)02-14 13:09:38.184: E/DatabaseUtils(2348):位于dalvik.system.NativeStart.run(Native) (方法)

我已经更新了我的应用程序。但我不能使用谷歌地图API。当我打开使用谷歌地图的活动时,它会显示上面的日志。 android.permission.interaction\u跨用户\u完全添加到权限

 <permission
        android:name="my.app.name.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="my.app.name.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- The following two permissions are not required to use
     Google Maps Android API v2, but are recommended. -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>

android.permission.跨用户交互\u FULL
是一种签名级权限。除非与系统具有相同的签名,否则您的应用程序将无法使用它

因此,在清单文件中添加以下权限

<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>

确保使用权限元素不在应用程序元素中。有一次我不小心把它贴到了那里,Android Studio没有告诉你这是个问题。一旦我把它搬出去,它就解决了这个问题

例如:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.someapp.app" >

  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

  <application ...>

...

...

同时添加您的清单权限……我做到了。“…添加到权限。”我的意思是将您的清单权限发布到此处,以便所有人都可以查看。就绪。但我认为这不会有帮助。/除非您是创建者或系统构建者,或者与他们合作,以便他们愿意用证书签署您的apk,否则您可以实现。换句话说,这对大多数开发人员来说是不允许的。我认为您需要生成已签名的apk。精确解不知道,我已经用过了。我试着使用发布签名。它不起作用。这让我发疯,是的。我通常对我的所有应用程序使用相同的包装。地图总是正确的。直到今天早上。