有没有一种方法可以使MSAL与Instant Run和AndroidX协同工作?
Microsoft身份验证库0.2.1可以与Android Studio配合使用,但在启用“即时运行”后迁移到androidx后会出现构建错误。
Java编译器在生成过程中报告以下错误:
java.lang.SecurityException:com / microsoft / identity / client / AuthenticationCallback.class的SHA-256摘要错误
复制:
我的MainActivity如下:
class MainActivity : AppCompatActivity() {
val CLIENT_ID = "<My Client Id>"
val SCOPES = arrayOf("https://graph.microsoft.com/User.Read")
private lateinit var sampleApp: PublicClientApplication
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
sampleApp = PublicClientApplication(
this.applicationContext,
CLIENT_ID
)
sampleApp.acquireToken(this, SCOPES, getAuthInteractiveCallback());
}
private fun getAuthInteractiveCallback(): AuthenticationCallback {
return object : AuthenticationCallback {
override fun onSuccess(authenticationResult: AuthenticationResult) {
val accessToken = authenticationResult.getAccessToken()
}
override fun onError(exception: MsalException) {
if (exception is MsalClientException) {
/* Exception inside MSAL, more info inside MsalError.java */
} else if (exception is MsalServiceException) {
/* Exception when communicating with the STS, likely config issue */
}
}
override fun onCancel() {
/* User canceled the authentication */
}
}
}
/* Handles the redirect from the System Browser */
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
sampleApp.handleInteractiveRequestRedirect(requestCode, resultCode, data)
}
}
编辑:GitHub问题https://github.com/AzureAD/microsoft-authentication-library-for-android/issues/354
答案 0 :(得分:1)
我将AD登录集成到我的Android应用程序中,并且在启用“即时运行”后开始出现此问题。因此,我再次禁用了Instant Run ,现在一切正常。
答案 1 :(得分:0)
似乎现在可以正常工作(不知道何时修复或如何修复,但MSAL 0.2.2和0.3.1-alpha似乎都可以与2019年4月10日构建的Android Studio一起使用)。