我正在使用图sdk编写android应用程序。 我试图故意创建GraphServiceClient,但是由于nullpointerexception而下降。 我在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 / Android运行时:致命异常:主要 流程: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.java:95) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2016) 在android.os.Handler.dispatchMessage(Handler.java:107) 在android.os.Looper.loop(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(Handler.java:107) 在android.os.Looper.loop(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时,它正在下降。
为什么?我在做什么错了?