微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android应用程式在addAccountExplicitly(帐户,密码,null)上崩溃;

成功的基本认证后,我想添加一个帐户供以后使用.当我尝试使用以下代码创建此帐户:
AccountManager accountManager = AccountManager.get(getBaseContext());
final Account basicAccount = new Account(mEmail,"com.example");
accountManager.addAccountExplicitly(basicAccount,mPassword,null);

当addAccountExplicitly(…)被称为应用程序崩溃与以下错误

E/AndroidRuntime: FATAL EXCEPTION: main
E/AndroidRuntime: Process: com.example,PID: 19094
E/AndroidRuntime: java.lang.SecurityException: uid 10107 cannot explicitly add accounts of type: com.example
E/AndroidRuntime:     at android.os.Parcel.readException(Parcel.java:1599)
E/AndroidRuntime:     at android.os.Parcel.readException(Parcel.java:1552)
E/AndroidRuntime:     at android.accounts.IAccountManager$Stub$Proxy.addAccountExplicitly(IAccountManager.java:890)
E/AndroidRuntime:     at android.accounts.AccountManager.addAccountExplicitly(AccountManager.java:712)
E/AndroidRuntime:     at com.example.LoginActivity$UserLoginTask.onPostExecute(LoginActivity.java:244)
E/AndroidRuntime:     at com.example.LoginActivity$UserLoginTask.onPostExecute(LoginActivity.java:209)
E/AndroidRuntime:     at android.os.AsyncTask.finish(AsyncTask.java:651)
E/AndroidRuntime:     at android.os.AsyncTask.-wrap1(AsyncTask.java)
E/AndroidRuntime:     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:148)
E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5417)
E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
W/ActivityManager:   Force finishing activity com.example/.LoginActivity

题:

>我确定我的AccountType与我的authentator.xml中指定的相同.为什么我的代码崩溃?
>甚至可以使用AccountManager和Account进行基本身份验证?我没有找到一个很好的例子(他们都使用令牌…)
>我的想法是使用这个帐户的几个应用程序.是否使用认证服务(意图)被认为是最佳做法?有什么好的教程吗?

谢谢,Ove

解决方法

1)崩溃的原因是因为AndroidManifest.xml中缺少以下代码段.
<service android:name="com.example.accounts.GenericAccountService">
    <intent-filter>
         <action android:name="android.accounts.AccountAuthenticator" />
    </intent-filter>
    <Meta-data android:name="android.accounts.AccountAuthenticator" android:resource="@xml/authenticator" />
</service>

2)绝对有可能,尽管最佳实践示例仍然缺失.

3)不知道然而…

原文地址:https://www.jb51.cc/android/311793.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐