gpt4 book ai didi

java - GoogleAuthUtil.getToken 导致 Android 应用程序崩溃

转载 作者:行者123 更新时间:2023-12-01 13:49:43 27 4
gpt4 key购买 nike

我正在尝试使用 GoogleAuthUtil.getToken 生成可用于登录其他服务的 token 。当我尝试使用此方法时,我的应用程序“挂起”并停止响应。最终我的手机吐出了一些 IO 错误消息。我没有从服务器收到任何结果。

电子邮件地址是我的电子邮件地址,格式为 myname@gmail.com,我已将服务器地址用于我的范围,但现在我只是尝试使用尽可能简单的字符串来获得我可以得到的结果开始工作。

public  class GetTokens extends AsyncTask<String,Void,String>{
Context c;
String TAG = "wnycmap issues";

public GetTokens(Context c) {
this.c=c;
}

@Override
protected String doInBackground(String...mEmail) {
String token = "null";
String mScope = "oauth2:https://www.googleapis.com/auth/plus.me";
String email = mEmail[0];
System.out.println(c+email+mScope);
try {
token = GoogleAuthUtil.getToken(
c,
email,
mScope);

System.out.println(token);
} catch (IOException transientEx) {
// Network or server error, try later
Log.e(TAG, transientEx.toString());
} catch (UserRecoverableAuthException e) {
// Recover (with e.getIntent())
Log.e(TAG, e.toString());
// Intent recover = e.getIntent();
//startActivityForResult(recover, REQUEST_CODE_TOKEN_AUTH);
} catch (GoogleAuthException authEx) {
Log.e(TAG, authEx.toString());
}

return token;

错误:

 E/SnepServer(32677): IO error
E/SnepServer(32677): java.io.IOException
E/SnepServer(32677): at com.android.nfc.dhimpl.NativeLlcpServiceSocket.accept(NativeLlcpServiceSocket.java:42)
E/SnepServer(32677): at com.android.nfc.snep.SnepServer$ServerThread.run(SnepServer.java:213)
D/NdefPushServer(32677): stop, thread = Thread[Thread-8152,5,main]
D/NdefPushServer(32677): shuting down server thread
E/HandoverServer(32677): IO error
E/HandoverServer(32677): java.io.IOException
E/HandoverServer(32677): at com.android.nfc.dhimpl.NativeLlcpServiceSocket.accept(NativeLlcpServiceSocket.java:42)
E/HandoverServer(32677): at com.android.nfc.handover.HandoverServer$ServerThread.run(HandoverServer.java:108)
E/NdefPushServer(32677): IO error
E/NdefPushServer(32677): java.io.IOException
E/NdefPushServer(32677): at com.android.nfc.dhimpl.NativeLlcpServiceSocket.accept(NativeLlcpServiceSocket.java:42)
E/NdefPushServer(32677): at com.android.nfc.ndefpush.NdefPushServer$ServerThread.run(NdefPushServer.java:154)

以及我用来调用 AsyncTask 的代码

private void authenticate() {
String accountEmail="asdf";
String authToken = "null";
AccountManager am = AccountManager.get(context);
Account[] accounts = am.getAccountsByType("com.google");

if (accounts != null){
Account account = accounts[0];
accountEmail = account.name;

System.out.println(context);
try {
authToken=new GetTokens(context).execute(accountEmail).get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

最佳答案

尝试一些事情,

  1. 捕获 GooglePlayServicesAvailabilityException
  2. 检查您是否在 AndroidManifest.xml 的应用程序元素中放置了正确的元数据 <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
  3. 捕获 RuntimeException 作为挖掘崩溃根源的最后手段。

关于java - GoogleAuthUtil.getToken 导致 Android 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20058077/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com