Android应用程式在addAccountExplicitly(帐户,密码,空值)时当机; [英] Android app crashes on addAccountExplicitly(account, password, null);

查看:172
本文介绍了Android应用程式在addAccountExplicitly(帐户,密码,空值)时当机;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在成功进行基本身份验证之后,我想添加一个帐户以供以后使用.当我尝试使用以下代码创建此帐户时:

After a successful basic authentication I want to add an account for later use. When I tried to create this account using the following code:

AccountManager accountManager = AccountManager.get(getBaseContext());
final Account basicAccount = new Account(mEmail, "com.example");
accountManager.addAccountExplicitly(basicAccount, mPassword, null);

调用addAccountExplicitly(...)时,应用程序崩溃并出现以下错误:

When addAccountExplicitly(...) is called the app crashes with the following error:

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

问题:

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

谢谢,谢谢

推荐答案

1)崩溃的原因是因为AndroidManifest.xml中缺少以下代码段.

1) Reason for crash was because the following snippet was missing in 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)绝对有可能,即使仍然缺少最佳实践示例.

2) It is absolutely possible, even though best practice example is still missing.

3)不知道.但是...

3) No idea. Yet...

这篇关于Android应用程式在addAccountExplicitly(帐户,密码,空值)时当机;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆