Status Update
Comments
il...@google.com <il...@google.com>
il...@google.com <il...@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]
ap...@google.com <ap...@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?
mg...@google.com <mg...@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.
mg...@google.com <mg...@google.com>
ap...@google.com <ap...@google.com> #6
Can you try this again:
Lint produced by Circle CI:
../../src/main/java/be/mygod/vpnhotspot/client/ClientViewModel.kt: Unexpected failure during lint analysis of ClientViewModel.kt (this is a bug in lint or one of the libraries it depends on)
Message: null cannot be cast to non-null type org.jetbrains.uast.UAnnotated
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: TypeCastException:NonNullableMutableLiveDataDetectorKt.isNullable(NonNullableMutableLiveDataDetector.kt:197)
←NonNullableMutableLiveDataDetector.visitMethodCall(NonNullableMutableLiveDataDetector.kt:133)
←UElementVisitor$DelegatingPsiVisitor.visitMethodCallExpression(UElementVisitor.kt:1079)
←UElementVisitor$DelegatingPsiVisitor.visitCallExpression(UElementVisitor.kt:1059)
←KotlinUFunctionCallExpression.accept(KotlinUFunctionCallExpression.kt:205)
←UQualifiedReferenceExpression$DefaultImpls.accept(UQualifiedReferenceExpression.kt:34)
←KotlinUQualifiedReferenceExpression.accept(KotlinUQualifiedReferenceExpression.kt:27)
←ImplementationUtilsKt.acceptList(implementationUtils.kt:23)
You can set environment variable LINT_PRINT_STACKTRACE=true to dump a full stacktrace to stdout.
Also reproducible locally on Android Studio 4.1 beta 3.
ap...@google.com <ap...@google.com> #7
Still couldn't make see in the app. But was able to reproduce based on the class throwing the error and get a fix.
pr...@google.com <pr...@google.com> #8
Branch: androidx-master-dev
commit 236cdbe9c248e30d0120e5c23933b74581ae9198
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jul 09 11:00:56 2020
Fix NullSafeMutableLiveData resolve error
When attempting to assign a MutableList to a MutableLiveData value, the
lint rule can fail to resolve a DOT_EXPRESSION and throw an error.
We should add null checks to avoid the error.
Test: Added NonNullableMutableLiveData test
Bug: 159987480
Change-Id: Ie3136bdd5362e7aa699a2b0b2f42caac03ed5217
M lifecycle/lifecycle-livedata-core-ktx-lint/build.gradle
M lifecycle/lifecycle-livedata-core-ktx-lint/src/main/java/androidx/lifecycle/lint/NonNullableMutableLiveDataDetector.kt
M lifecycle/lifecycle-livedata-core-ktx-lint/src/test/java/androidx/lifecycle/lint/NonNullableMutableLiveDataDetectorTest.kt
Description
It would be nice if the core concepts of Lifecycle would be available for use in Kotlin Multiplatform projects.
Libraries like the Navigation Component, Fragments, etc. have all settled on the same definitions of Lifecycle States, which seem to apply to any UI:
CREATED
- created, but not yet visibleSTARTED
- visible, but not yet settled (e.g., entering or exiting transitions may still be running)RESUMED
- visible and settledThis would include:
Lifecycle
LifecycleRegistry
LifecycleOwner
LifecycleObserver
And ideally everything in the
lifecycle-common
andlifecycle-runtime
artifacts.