注意:这不是重复的,我在类似的StackOverflow问题中尝试了很多解决方案,但在我的情况下它们不起作用。感谢您的任何帮助。
只有在运行Android 6.0之前的版本的设备上才会发生此崩溃。例如,它在运行Android 5.1版的XT1032上崩溃。在这种情况下,每当我调用此方法时,在我的AppCompatActivity的onCreate方法中,
AccountManager.get(this).addOnAccountsUpdatedListener(this, null, true);
它崩溃是因为它似乎没有所需的权限(并且我不知道为什么,因为它在清单中)。我相信它并没有真正进入方法,但是由于@RequiresPermission行而导致在进入方法时崩溃:
@RequiresPermission(GET_ACCOUNTS)
public void addOnAccountsUpdatedListener(final OnAccountsUpdateListener listener,
Handler handler, boolean updateImmediately) { ...
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪,还有更多的日志记录代码:
V/AccountManagerService: getAccounts: accountType null, caller's uid 10018, pid 23074
V/AccountManagerService: caller uid 10018 has android.permission.GET_ACCOUNTS
V/AccountManagerService: getAccounts: accountType null, caller's uid 10018, pid 23074
V/AccountManagerService: caller uid 10018 has android.permission.GET_ACCOUNTS
V/AccountManagerService: caller uid 10009 has android.permission.INTERACT_ACROSS_USERS
V/AccountManagerService: getAccounts: accountType com.google, caller's uid 10009, pid 1738
V/AccountManagerService: caller uid 10009 has android.permission.GET_ACCOUNTS
V/AccountManagerService: getAccounts: accountType null, caller's uid 10018, pid …Run Code Online (Sandbox Code Playgroud) 最近开始因为java.lang.SecurityException: Binder invocation to an incorrect interface我们的应用程序崩溃,这只发生在6.0和6.0.1操作系统上.堆栈跟踪从崩溃报告服务中提取,无法在任何Android 6设备上本地复制.
该应用程序使用一个"服务"调用'startForeground',堆栈跟踪似乎指向该方法调用.
java.lang.SecurityException: Binder invocation to an incorrect interface
at android.os.Parcel.readException(Parcel.java:1620)
at android.os.Parcel.readException(Parcel.java:1573)
at android.app.ActivityManagerProxy.setServiceForeground(ActivityManagerNative.java:4487)
at android.app.Service.startForeground(Service.java:652)
at com.anghami.audio.MusicService.J(MusicService.java:3517)
at com.anghami.audio.MusicService.b(MusicService.java:2676)
at com.anghami.audio.MusicService.F(MusicService.java:2647)
at com.anghami.audio.MusicService.a(MusicService.java:2421)
at com.anghami.audio.MusicService_.a(MusicService_.java:21)
at com.anghami.audio.MusicService_$4.a(MusicService_.java:214)
at org.androidannotations.api.a$a.run(BackgroundExecutor.java:401)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud) 尝试startActivityForResult(intent, requestCode);使用final Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);intent 时,我得到java.lang.SecurityException .有趣的是这次崩溃只发生在华为的Android 5.1 - 5.1.1上我没有华为设备.你能告诉我它的建议吗?
堆栈跟踪
Fatal Exception: java.lang.SecurityException: Permission Denial: starting Intent { act=android.settings.USAGE_ACCESS_SETTINGS cmp=com.android.settings/.Settings$UsageAccessSettingsActivity } from ProcessRecord{11b5f1a1 19764:com.myproject.my/u0a167} (pid=19764, uid=10167) not exported from uid 1000
at android.os.Parcel.readException(Parcel.java:1546)
at android.os.Parcel.readException(Parcel.java:1499)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2448)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1496)
at android.app.Activity.startActivityForResult(Activity.java:3794)
at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:77)
at android.app.Activity.startActivityForResult(Activity.java:3755)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859)
at com.myproject.my.utils.PermissionsHelper$2.onClick(PermissionsHelper.java:134)
at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:157)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5298)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706)
Run Code Online (Sandbox Code Playgroud) 我想以编程方式关闭/锁定设备的屏幕.
目前,当我尝试:
DevicePolicyManager mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDPM.lockNow();
Run Code Online (Sandbox Code Playgroud)
我有这个错误:
java.lang.SecurityException:uid 10176没有为策略#3拥有的活动管理员
这是我的AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="opteamit.com.belami" >
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-feature android:name="android.hardware.location.gps" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application...
Run Code Online (Sandbox Code Playgroud)
怎么了 ?
我正在尝试以编程方式从我的设备获取电话号码.我正在尝试使用以下代码:
TelephonyManager tMgr = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
mPhoneNumber = tMgr.getLine1Number();
Run Code Online (Sandbox Code Playgroud)
我在清单文件中声明了以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_SMS"/>
Run Code Online (Sandbox Code Playgroud)
但是我的应用程序仍然崩溃,堆栈跟踪如下:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: toadways.ways.toad.toadways, PID: 29620
java.lang.RuntimeException: Unable to start activity ComponentInfo{toadways.ways.toad.toadways/toadways.ways.toad.toadways.RegistrationScreen}: java.lang.SecurityException: getLine1NumberForDisplay: Neither user 10240 nor current process has android.permission.READ_SMS.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.SecurityException: getLine1NumberForDisplay: Neither user 10240 nor current process has android.permission.READ_SMS.
at android.os.Parcel.readException(Parcel.java:1599) …Run Code Online (Sandbox Code Playgroud) android telephonymanager android-securityexception android-security