Status Update
Comments
ra...@google.com <ra...@google.com>
rv...@mozilla.com <rv...@mozilla.com> #2
Maybe a dup of
js...@google.com <js...@google.com> #3
Android Gradle Plugin: 8.7.1
Could you try the latest canary, AGP 8.8.0-alpha09
?
js...@google.com <js...@google.com>
js...@google.com <js...@google.com>
rv...@mozilla.com <rv...@mozilla.com> #4
I just updated to Android Gradle Plugin: 8.7.2 and the bug is fixed.
js...@google.com <js...@google.com> #5
I spoke too soon. The bug appears gone when I use a different computer, but that is only because the lint check is disabled on it. The computer with the false positive is a new cloning of my github project which apparently has the lint check enabled. The AGP 8.8.0-alpha09 plugin will not work on ladybug, and I'm too busy to switch to a canary build of android studio just to fix a false positive lint check, sorry.
js...@google.com <js...@google.com> #6
I just tried running lint on two more of my computers, one which also has a fresh clone of the github project, and one which has an "ancient" (but up to date) clone of the project -- the two computers have very different Settings -> Editor -> Inspections choices. The old clones do not have this lint check anywhere in their choices, whereas new clones do. Very odd indeed. (I have .idea/ in my .gitignore BTW).
rv...@mozilla.com <rv...@mozilla.com> #7
I understand that it's not trivial to change AGP version; sorry for suggesting that first.
Actually, there is a better way to test: android.experimental.lint.version=8.8.0-alpha09
which will just change the Lint version.
an...@google.com <an...@google.com> #8
I decided it was easier to download Android Studio Ladybug Feature Drop | 2024.2.2 Canary 9 than to figure out how to use a different version of lint (a search of stackoverflow suggests this is impossible for what that is worth). Using AGP 8.8.0-alpha09 and gradle-8.10.2-bin.zip on Canary the same error occurs. It looks like it is caused by the K2 compiler mode, because the Inspections options for this lint check does not appear until you enble K2 mode (nor does the false positive error).
an...@google.com <an...@google.com> #9
Thank you for trying the latest canary version of Studio and AGP, I really appreciate that.
I rather confirmed that, with that canary (AGP 8.8.0-alpha09),
I also tried altering problematic produceState
call with conditional assignment to value
, which also works fine. I tried a similar code pattern on compose runtime ProduceStateDetector
and its tests, but no luck.
Then... my next guess is whether it is from an old compose runtime, assuming this might be a dup of
Description
This piece of code generates a
WrongConstant
Lint error saying:I'm actually passing
PackageManager.MATCH_DEFAULT_ONLY
, but I can't pass exactly that value in Kotlin, as thePackageManager.ResolveInfoFlags.of
expects a long, so I need to convert it, while in Java theint
is implicitly cast tolong
.Version of Gradle Plugin: 8.6.0
Version of Gradle: 8.10.0
Version of Java: 17