Status Update
Comments
sa...@google.com <sa...@google.com>
rk...@google.com <rk...@google.com>
si...@google.com <si...@google.com> #2
After upgrading to kotlin 2.1.0 and bumping remaining dependencies, things seem to work as expected again. EDIT: My bad; was on the wrong branch. Those upgrades did NOT help.
si...@google.com <si...@google.com> #3
I think I managed to track it down further:
In my Child
composable, I'm actually hitting a TODO()
statement:
@Composable
fun Child(isLoading: Boolean, items: List<MyDataClass>) {
// ...
if (notYetSupported) {
TODO("This is not yet supported!")
}
// ...
}
It would seem that compose swallows this error and throws the above instead which is not very helpful.
si...@google.com <si...@google.com> #4
The "pending composition has not been applied" error generally means that composition continued despite something in the hierarchy previously throwing an exception. Here it looks like something is continuing a subcomposition unexpectedly, possibly a LazyList.
We should see if we can improve this error messaging. Can you send over a more complete example? The snippets here aren't fleshed out enough to reproduce this swallowing behavior.
co...@accenture.com <co...@accenture.com> #5
Triage notes: It feels like we're very close to having a repro case that we could run internally, but we don't know where the sub-composition is coming from.
Can you send over a more complete example?
Let's hold until we can get a stable repro case from the reporter. Could you send us a ZIP of the project that repros this issue? We'll close this out in a month if we don't get a response.
Bugjuggler: wait 1 month
si...@google.com <si...@google.com> #6
si...@google.com <si...@google.com> #7
This took me about an hour to extract but it reproduces the issue for me.
@file:SuppressLint("UnusedMaterialScaffoldPaddingParameter")
package com.example
import android.annotation.SuppressLint
import android.app.Application
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Scaffold
import androidx.compose.material.Text
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import kotlinx.coroutines.delay
class MyApp : Application()
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme {
// Scaffold is required!
Scaffold { _ ->
val a = remember { mutableStateOf(true) }
val b = remember { mutableStateOf(true) }
LaunchedEffect(Unit) {
a.value = false
delay(50)
b.value = false
}
AnimatedVisibility(visible = a.value) { Text("Hello World") }
if (!b.value) {
TODO()
}
}
}
}
}
}
Description
The Car Service API allows programmatic access to the AAOS VHAL. The problem is that thehttps://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/android-grpc/services/incubating/car/proto/car_service.proto has the type for CarEvent as string whereas its expected as a byte string by AAOS.
The fix is to change the type from string to bytes. I've rebuilt the emulator on Linux and the fix is working fine with both python and node.js gRPC clients.
The following example python script can be used for reproducing the problem using a Linux emulator running an AAOS image (for example system-images;android-32;android-automotive-playstore;x86_64)