我在尝试实现Sample Sync Adapter应用程序时收到了上述异常.我看过很多与此问题相关的帖子,但没有令人满意的答复.
所以我会在这里记下我的解决方案,以防其他人遇到同样的问题.
最近我看到 Firebase Crashlytic 在以下方面报告的错误有所增加
Caused by java.lang.SecurityException: uid 10172 cannot explicitly add accounts of type: com.mypackage.account
at android.os.Parcel.createException(Parcel.java:2087)
at android.os.Parcel.readException(Parcel.java:2055)
at android.os.Parcel.readException(Parcel.java:2003)
at android.accounts.IAccountManager$Stub$Proxy.addAccountExplicitly(IAccountManager.java:1660)
at android.accounts.AccountManager.addAccountExplicitly(AccountManager.java:889)
Run Code Online (Sandbox Code Playgroud)
它是从
accountManager.addAccountExplicitly(defaultAccount, null, null)
Run Code Online (Sandbox Code Playgroud)
根据 Firebase Crashlytic 报告,它仅在 Android 9 和 10 以及三星、Realme 和 OPPO 设备上发生
最后,我尝试在 Android P 和 Android 10 设备上进行复制,并且代码没有问题地被触发。
我已经通过 StackOverflow 进行了搜索,例如
Android 应用程序在 addAccountExplicitly(account, password, null) 上崩溃;, Android SecurityException: uid xxxxx 无法显式添加账户, /sf/answers/4101384241/ , /sf/answers/2614423661/ , /sf/answers/1188043391/ /3286489和Android 添加帐户与 AccountManager。
它们用于可复制的问题,因此它对我没有用。
我检查也发现像
https://github.com/signalapp/Signal-Android/issues/9311 (Android …