Я пишу android приложение с использованием графа SDK. Я пытаюсь создать GraphServiceClient в намерении, но он падает с нулевой ошибкой. Что я делаю в MainActivity:
val authenticationAdapter = object : MSAAuthAndroidAdapter(application) {
override fun getClientId(): String {
return "ca001e3e-b872-466e-99a3-1264efaedb45"
}
override fun getScopes(): Array<String> {
return arrayOf("https://graph.microsoft.com/Calendars.ReadWrite",
"https://graph.microsoft.com/Contacts.ReadWrite",
"https://graph.microsoft.com/Files.ReadWrite",
"https://graph.microsoft.com/Mail.ReadWrite",
"https://graph.microsoft.com/Mail.Send",
"https://graph.microsoft.com/User.ReadBasic.All",
"https://graph.microsoft.com/User.ReadWrite",
"offline_access",
"openid")
}
}
login.setOnClickListener { authenticationAdapter.login(this, object : ICallback<Void>{
override fun success(result: Void?) {
val intent = Intent(baseContext, FilesBrowser::class.java)
intent.putExtra("token", authenticationAdapter.accessToken)
startActivity(intent)
}
override fun failure(ex: ClientException?) {
Toast.makeText(baseContext, ex.toString(), Toast.LENGTH_LONG).show()
}
})}
и код в моем намерении
val token = intent.getSerializableExtra("token").toString()
val mClient = GraphServiceClient
.Builder()
.authenticationProvider { request -> request?.addHeader("authorization", "bearer " + token) }
.buildClient()
И я получаю эту ошибку:
E / AndroidRuntime: ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.example.micloud, PID: 22215 java .lang.RuntimeException: невозможно запустить действие ComponentInfo {com.example.micloud / com.example.micloud.FilesBrowser}: java .lang. NullPointerException: исполнители в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 3270) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 3409) в android .app.servertransaction. LaunchActivityItem.execute (LaunchActivityItem. java: 83) в android .app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor. java: 135) в android .app.servertransaction.TransactionExecutor.execute (TransactionExecutor. *: 95) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 2016) в android .os.Handler.dispatchMessage (Обработчик. java: 107) в android .os .Looper.l oop (Looper java:. 214 ) в android .app.ActivityThread.main (ActivityThread. java: 7356) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller .run (RuntimeInit. java: 492) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 930) Вызывается: java .lang.NullPointerException: Исполнители в com.microsoft .graph.core.BaseClient.validate (BaseClient. java: 129) по адресу com.microsoft.graph.extensions.GraphServiceClient $ Builder.buildClient (GraphServiceClient. java: 113) по адресу com.example.micloud.FilesBrowser.onCreate. (FilesBrowser.kt: 36) в android .app.Activity.performCreate (Activity. java: 7802) в android .app.Activity.performCreate (Activity. java: 7791) в android. app.Instrumentation.callActivityOnCreate (Instrumentation. java: 1299) в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 3245) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 3409) в android .app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem. java: 83) в android .app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor. java: 135) в android .app.servertransaction.TransactionExecutor.execute (TransactionExecutor. java: 95) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 2016) в android .os.Handler.dispatchMessage (Обработчик. java: 107) в android .os.Looper.l oop ( Looper. java: 214) на android .app.ActivityThread.main (ActivityThread. java: 7356) на java .lang.reflect.Method.invoke (собственный метод) на com. android. internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 492) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 930)
Поэтому он падает, когда я вызываю buildClient.
Почему? Что я делаю не так?