Status Update
Comments
my...@gmail.com <my...@gmail.com> #2
Branch: androidx-main
commit ef1265ecca338a7bb3929def8085236d45ace500
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Thu Jun 29 11:16:59 2023
Update Room Gradle plugin APIs to not always require per-variant configurations.
Most Room users don't have per-variant schemas which means having per-variant schema directories can decrease the user experience, specially as users migrate from the current annotation processor option approach to the plugin as per-variant directories where also not needed then if not necessary. This change updates the plugin APIs to accept a global location for all variants without creating multiple directories, enabling smoother migrations but also flexible enough to configure flavors or build type schemas while still retaining the benefits of the plugin (reproducible and cacheable builds).
The API is updated to contain overloads for configuring a single schema location or per-variant locations:
```
room {
// For all variants
schemaLocation("$projectDir/schemas/")
// For a specific variant
schemaLocation("variantName", ("$projectDir/schemas/variantName")
}
```
and an example usage assuming two build flavors: ‘demo’ and ‘full’ and the two default build types ‘debug’ and ‘release’:
```
room {
// Applies to demoDebug only
schemaLocation("demoDebug", ("$projectDir/schemas/demoDebug")
// Applies to demoDebug and demoRelease
schemaLocation("demo", ("$projectDir/schemas/demo")
// Applies to demoDebug and fullDebug
schemaLocation("debug", ("$projectDir/schemas/debug")
}
```
Bug: 278266663
Test: RoomGradlePluginTest
Change-Id: I09d6f9a77d3737bef2ce73193344a8b31f5059a8
M room/room-gradle-plugin/src/main/java/androidx/room/gradle/RoomExtension.kt
M room/room-gradle-plugin/src/main/java/androidx/room/gradle/RoomGradlePlugin.kt
M room/room-gradle-plugin/src/test/java/androidx/room/gradle/RoomGradlePluginTest.kt
se...@google.com <se...@google.com>
jb...@google.com <jb...@google.com> #3
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.room:room-gradle-plugin:2.6.0-alpha03
my...@gmail.com <my...@gmail.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.
jb...@google.com <jb...@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.
my...@gmail.com <my...@gmail.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.
jb...@google.com <jb...@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.
ap...@google.com <ap...@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
jb...@google.com <jb...@google.com> #9
This has been fixed internally and will be available in the Lifecycle 2.3.0-alpha06 release.
my...@gmail.com <my...@gmail.com> #10
Hi the error at line 133 seems resolved in alpha06 but the error at line 105 is still there.
b9...@gmail.com <b9...@gmail.com> #11
jb...@google.com <jb...@google.com> #12
please file a new bug with a minimal sample project.
Description
Component & version used:
Devices/Android versions reproduced on: N/A
Source code:https://github.com/Mygod/VPNHotspot/commit/cc14f607ef48bba755350e68bef68c0f256377fd
Circle CI build:https://app.circleci.com/pipelines/github/Mygod/VPNHotspot/92/workflows/6676d5ec-59eb-4353-845a-4a398c53d90f/jobs/459/steps (should be accessible with any account)
Relevant part of compiler output: