前提・実現したいこと
AndroidStudioでAccountManagerを用いてGmailのためのAuthトークンを取得しようとしています。
発生している問題・エラーメッセージ
下のソースコードで実行したらgetAuthTokenメソッドで java.lang.ArrayIndexOutOfBoundsException
のエラーが出てしまいましたが、なぜ変数型が違うのかわかりません。
エラーメッセージ
12-18 14:25:21.329 9121-9121/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.takayanagi.acmtest, PID: 9121
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.takayanagi.acmtest/com.takayanagi.acmtest.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
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.ArrayIndexOutOfBoundsException: length=0; index=0
at com.takayanagi.acmtest.MainActivity.onCreate(MainActivity.java:30)
at android.app.Activity.performCreate(Activity.java:6251)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
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)
該当のソースコード
java
1ソースコード 2```MainActivity.java 3 4package com.takayanagi.acmtest; 5 6import android.accounts.Account; 7import android.accounts.AccountManager; 8import android.accounts.AccountManagerFuture; 9import android.accounts.AuthenticatorException; 10import android.accounts.OperationCanceledException; 11import android.support.v7.app.AppCompatActivity; 12import android.os.Bundle; 13import android.util.Log; 14 15import java.io.IOException; 16 17public class MainActivity extends AppCompatActivity { 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.activity_main); 23 AccountManager mAccountManager = AccountManager.get(this); 24 25 26 // アカウントリストを取得 27 Account[] accounts = mAccountManager.getAccountsByType("com.google"); 28 29 Log.d("AuthToken", "account"); 30 31 32 33 AccountManagerFuture<Bundle> accountManagerFuture = mAccountManager.getAuthToken( 34 accounts[0], 35 "mail", 36 null, 37 this, 38 null, 39 null); 40 Log.d("AuthToken", "go"); 41 Bundle authTokenBundle; 42 String authToken = null; 43 try { 44 45 // Bundleを取得 46 authTokenBundle = accountManagerFuture.getResult(); 47 48 // トークンを取得 49 authToken = authTokenBundle.get(AccountManager.KEY_AUTHTOKEN).toString(); 50 } catch (OperationCanceledException e) { 51 e.printStackTrace(); 52 } catch (AuthenticatorException e) { 53 e.printStackTrace(); 54 } catch (IOException e) { 55 e.printStackTrace(); 56 } 57 if(authToken != null){ 58 Log.d("AuthToken", authToken); 59 } 60 61 62 } 63} 64 65### 試したこと 66webでjava.lang.ArrayIndexOutOfBoundsExceptionがどういうエラーなのか調べましたが 67なぜ変数型が違うのかわかりません 68 69### 補足情報(FW/ツールのバージョンなど) 70 71Android Studio3.1.1 72Android SDK Tools 26.1.1 73Android Platform Version API 28 revision 6 74 75ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/21 06:07