Status Update
Comments
se...@google.com <se...@google.com> #2
A different error using 2.3.0-alpha04 (checked using gradlew core:dependencies).
Source code:
Circle CI build:
* What went wrong:
Execution failed for task ':core:lint'.
> Lint found errors in the project; aborting build.
Fix the issues identified by lint, or add the following to your build script to proceed with errors:
...
android {
lintOptions {
abortOnError false
}
}
...
Errors found:
/home/circleci/code/core/src/main/java/com/github/shadowsocks/net/HttpsTest.kt: Error: Unexpected failure during lint analysis of HttpsTest.kt (this is a bug in lint or one of the libraries it depends on)
Message: org.jetbrains.kotlin.asJava.elements.KtLightMethodImpl cannot be cast to com.intellij.psi.PsiVariable
The crash seems to involve the detector androidx.lifecycle.lint.NonNullableMutableLiveDataDetector.
You can try disabling it with something like this:
android {
lintOptions {
disable "NullSafeMutableLiveData"
}
}
Stack: ClassCastException:NonNullableMutableLiveDataDetector.visitMethodCall(NonNullableMutableLiveDataDetector.kt:105)←UElementVisitor$DelegatingPsiVisitor.visitMethodCallExpression(UElementVisitor.kt:1079)←UElementVisitor$DelegatingPsiVisitor.visitCallExpression(UElementVisitor.kt:1059)←UCallExpression$DefaultImpls.accept(UCallExpression.kt:85)←UCallExpressionEx$DefaultImpls.accept(UCallExpression.kt:-1)←KotlinUSimpleReferenceExpression$KotlinAccessorCallExpression.accept(KotlinUSimpleReferenceExpression.kt:129)←KotlinUSimpleReferenceExpression.visitAccessorCalls(KotlinUSimpleReferenceExpression.kt:116)←KotlinUSimpleReferenceExpression.accept(KotlinUSimpleReferenceExpression.kt:83)
You can set environment variable LINT_PRINT_STACKTRACE=true to dump a full stacktrace to stdout. [LintError]
/home/circleci/code/core/src/main/java/com/github/shadowsocks/subscription/SubscriptionService.kt: Error: Unexpected failure during lint analysis of SubscriptionService.kt (this is a bug in lint or one of the libraries it depends on)
Message: org.jetbrains.kotlin.asJava.elements.KtLightMethodImpl cannot be cast to com.intellij.psi.PsiVariable
The crash seems to involve the detector androidx.lifecycle.lint.NonNullableMutableLiveDataDetector.
You can try disabling it with something like this:
android {
lintOptions {
disable "NullSafeMutableLiveData"
}
}
Stack: ClassCastException:NonNullableMutableLiveDataDetector.visitMethodCall(NonNullableMutableLiveDataDetector.kt:105)←UElementVisitor$DelegatingPsiVisitor.visitMethodCallExpression(UElementVisitor.kt:1079)←UElementVisitor$DelegatingPsiVisitor.visitCallExpression(UElementVisitor.kt:1059)←UCallExpression$DefaultImpls.accept(UCallExpression.kt:85)←UCallExpressionEx$DefaultImpls.accept(UCallExpression.kt:-1)←KotlinUSimpleReferenceExpression$KotlinAccessorCallExpression.accept(KotlinUSimpleReferenceExpression.kt:129)←KotlinUSimpleReferenceExpression.visitAccessorCalls(KotlinUSimpleReferenceExpression.kt:116)←KotlinUSimpleReferenceExpression.accept(KotlinUSimpleReferenceExpression.kt:83)
You can set environment variable LINT_PRINT_STACKTRACE=true to dump a full stacktrace to stdout. [LintError]
se...@google.com <se...@google.com> #3
That looks to still be using the previous version. Could you upload a minimal sample project using 2.3.0-alpha05 that reproduces your issue?
il...@google.com <il...@google.com> #4
The sample at #1 should be using 2.3.0-alpha05 out of the box. I do not have a minimal sample at the time, sorry.
ap...@google.com <ap...@google.com> #5
That sample was using lifecycle 2.2.0 when I opened it. Upgraded it to 2.3.0-alpha05 and got an ObsoleteLintCustomCheck which is being addressed in
Gonna close this as not reproducible, and once you get a chance to reproduce it, just upload it here and would be happy to take a look.
Description
The keys() method in SavedStateHandle will always include keys for values set via the set() method, but it doesn't include the keys associated with a SavedStateProvider set via setSavedStateProvider() until after state is saved. If you wanted to remove all of the SavedStateProviders by iterating through the keys, whether it would work or not would depend on if state was already saved, which is kind of inconsistent and seems like a bug.