Status Update
Comments
do...@gmail.com <do...@gmail.com> #2
The first CL of this effort has been officially submitted in lifecycle-common
.
ml...@google.com <ml...@google.com>
bo...@google.com <bo...@google.com>
wd...@google.com <wd...@google.com> #3
Branch: androidx-main
commit e4a654d863af22d2a4f486b90cf29c26c487cffb
Author: Ivan Matkov <ivan.matkov@jetbrains.com>
Date: Mon Jan 22 11:49:53 2024
Multiplatform support for lifecycle-runtime
This change introduces multiplatform support for the lifecycle-runtime module by exposing the `LifecycleRegistry` to common, ensuring compatibility with published versions on Android.
BUG: 317249252
Relnote: Added multiplatform support for `lifecycle-runtime`
Test: Run existing and newly added tests
Change-Id: I0c5acfde52bd6c4a3cf7f38193c235915b45d549
M lifecycle/lifecycle-runtime/build.gradle
M lifecycle/lifecycle-runtime/src/androidInstrumentedTest/kotlin/androidx/lifecycle/MissingClassTest.kt
M lifecycle/lifecycle-runtime/src/androidInstrumentedTest/kotlin/androidx/lifecycle/ViewTreeLifecycleOwnerTest.kt
M lifecycle/lifecycle-runtime/src/androidMain/baseline-prof.txt
M lifecycle/lifecycle-runtime/src/androidMain/java/androidx/lifecycle/LifecycleRegistryOwner.java
A lifecycle/lifecycle-runtime/src/androidMain/kotlin/androidx/lifecycle/LifecycleRegistry.android.kt
M lifecycle/lifecycle-runtime/src/androidMain/kotlin/androidx/lifecycle/ReportFragment.android.kt
M lifecycle/lifecycle-runtime/src/androidMain/kotlin/androidx/lifecycle/ViewTreeLifecycleOwner.android.kt
M lifecycle/lifecycle-runtime/src/androidMain/res/values/ids.xml
M lifecycle/lifecycle-runtime/src/androidUnitTest/kotlin/NoPackageObserver.kt
M lifecycle/lifecycle-runtime/src/androidUnitTest/kotlin/NoPackageTest.kt
M lifecycle/lifecycle-runtime/src/androidUnitTest/kotlin/androidx/lifecycle/LifecycleRegistryTest.java
A lifecycle/lifecycle-runtime/src/commonMain/kotlin/androidx/lifecycle/LifecycleRegistry.kt
A lifecycle/lifecycle-runtime/src/commonTest/kotlin/androidx/lifecycle/CommonLifecycleRegistryTest.kt
A lifecycle/lifecycle-runtime/src/commonTest/kotlin/androidx/lifecycle/TestObserver.kt
A lifecycle/lifecycle-runtime/src/desktopMain/kotlin/androidx/lifecycle/LifecycleRegistry.desktop.kt
M lifecycle/lifecycle-runtime/src/jvmMain/kotlin/androidx/lifecycle/LifecycleRegistry.jvm.kt
M lifecycle/lifecycle-runtime/src/nativeMain/kotlin/androidx/lifecycle/LifecycleRegistry.native.kt
A lifecycle/lifecycle-runtime/src/nativeTest/kotlin/androidx/lifecycle/NativeLifecycleRegistryTest.kt
M settings.gradle
do...@gmail.com <do...@gmail.com> #4
The second CL of this effort has been officially submitted in aosp/2927699, adding multiplatform support to lifecycle-runtime
.
wd...@google.com <wd...@google.com> #5
Branch: androidx-main
commit 08f40110a0400fa434ed023e763152e6f4aa39af
Author: Ivan Matkov <ivan.matkov@jetbrains.com>
Date: Fri Jan 26 17:06:51 2024
Multiplatform support for lifecycle-runtime-ktx
BUG: 317249252
Relnote: Added multiplatform support for `lifecycle-runtime-ktx`
Test: Run existing tests
Change-Id: If445d68e7e85929839ad10347b31b9f11d61c00d
M lifecycle/lifecycle-runtime-ktx/build.gradle
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/Expectations.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/FakeLifecycleOwner.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/FlowWithLifecycleTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/LaunchWhenTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/PausingDispatcherTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/RepeatOnLifecycleTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/TaskTracker.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/TrackedExecutor.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/ViewTreeLifecycleOwnerTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidInstrumentedTest/kotlin/androidx/lifecycle/WithLifecycleStateTest.kt
M lifecycle/lifecycle-runtime-ktx/src/androidMain/AndroidManifest.xml
M lifecycle/lifecycle-runtime-ktx/src/androidMain/kotlin/androidx/lifecycle/View.android.kt
M lifecycle/lifecycle-runtime-ktx/src/commonMain/kotlin/androidx/lifecycle/FlowExt.kt
M lifecycle/lifecycle-runtime-ktx/src/commonMain/kotlin/androidx/lifecycle/RepeatOnLifecycle.kt
M lifecycle/lifecycle-runtime-ktx/src/commonMain/kotlin/androidx/lifecycle/WithLifecycleState.kt
M settings.gradle
wd...@google.com <wd...@google.com> #6
Branch: androidx-main
commit d48a756bfcbc4679bbcf641554f75be5458cad04
Author: Ivan Matkov <ivan.matkov@jetbrains.com>
Date: Mon Mar 04 22:55:59 2024
Align source sets in lifecycle-runtime with JetBrains fork
- Move shared code into `nonJvmMain` (a common source set for native and web targets)
- Use expect/actual for `WeakReference` and `isMainThread`
Bug: 317249252
Test: N/A
Change-Id: If70f6aa691d231674a7e3234a668e4b8184f2d91
M development/build_log_simplifier/messages.ignore
M lifecycle/lifecycle-runtime/build.gradle
M lifecycle/lifecycle-runtime/src/nativeMain/kotlin/androidx/lifecycle/LifecycleRegistry.native.kt
A lifecycle/lifecycle-runtime/src/nativeMain/kotlin/androidx/lifecycle/WeakReference.native.kt
A lifecycle/lifecycle-runtime/src/nonJvmMain/kotlin/androidx/lifecycle/LifecycleRegistry.nonJvm.kt
A lifecycle/lifecycle-runtime/src/nonJvmMain/kotlin/androidx/lifecycle/WeakReference.nonJvm.kt
ma...@google.com <ma...@google.com> #7
Branch: androidx-main
commit 1b02695fac60c198985910d0a4658a3f53027f35
Author: Ivan Matkov <ivan.matkov@jetbrains.com>
Date: Mon Mar 04 22:08:16 2024
Align source sets in lifecycle-common with JetBrains fork
- Move shared code into `nonJvmMain` (a common source set for native and web targets)
Bug: 317249252
Test: N/A
Change-Id: If7e05abc26e53d93f1b853941687602093576cc5
M lifecycle/lifecycle-common/build.gradle
M lifecycle/lifecycle-common/src/nonJvmMain/kotlin/androidx/lifecycle/Lifecycle.nonJvm.kt
M lifecycle/lifecycle-common/src/nonJvmMain/kotlin/androidx/lifecycle/Lifecycling.nonJvm.kt
ma...@google.com <ma...@google.com> #8
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.lifecycle:lifecycle-common:2.8.0-alpha03
androidx.lifecycle:lifecycle-common-iosarm64:2.8.0-alpha03
androidx.lifecycle:lifecycle-common-iossimulatorarm64:2.8.0-alpha03
androidx.lifecycle:lifecycle-common-iosx64:2.8.0-alpha03
androidx.lifecycle:lifecycle-common-jvm:2.8.0-alpha03
androidx.lifecycle:lifecycle-common-linuxx64:2.8.0-alpha03
androidx.lifecycle:lifecycle-common-macosarm64:2.8.0-alpha03
androidx.lifecycle:lifecycle-common-macosx64:2.8.0-alpha03
androidx.lifecycle:lifecycle-runtime:2.8.0-alpha03
androidx.lifecycle:lifecycle-runtime-android:2.8.0-alpha03
androidx.lifecycle:lifecycle-runtime-desktop:2.8.0-alpha03
androidx.lifecycle:lifecycle-runtime-iosarm64:2.8.0-alpha03
androidx.lifecycle:lifecycle-runtime-iossimulatorarm64:2.8.0-alpha03
androidx.lifecycle:lifecycle-runtime-iosx64:2.8.0-alpha03
androidx.lifecycle:lifecycle-runtime-linuxx64:2.8.0-alpha03
androidx.lifecycle:lifecycle-runtime-macosarm64:2.8.0-alpha03
androidx.lifecycle:lifecycle-runtime-macosx64:2.8.0-alpha03
wd...@google.com <wd...@google.com> #9
RE#7 Thanks for the detailed explanation and really appreciate the solution mentioned in
Fixes in order of preference:
(a) The network should 'simply' be fixed to return a non-link local DNS IPv6 address.
(b) Make Android Studio simply ignore fe80::/64 dns servers (strip them out, you'd be left with just 192.168.1.1) - though this may end up with Android Studio networking coming up without any ipv6 connection.
(c) You could in such a case use a hardcoded DNS server - like the Google DNS ips you mentioned in #6.
However, not using the DNS provided by the system is usually something that shouldn't be done (for privacy reasons...)
As such I'd recommend doing (a) and/or (b) and perhaps adding a flag (or config option or something) to manually specify / override the DNS servers to use (perhaps one for ipv4, one for ipv6??).
I think emulator should implement (b) at least and (c) should be only enabled if an option is provided.
do...@gmail.com <do...@gmail.com> #11
Apparently, the issue has been resolved in Android Emulator 32.1.11-9536276. After updating and restarting AS I see that network works.
However, if I run from CL, network works but log is the same for 32.1.11 with pixel 2 API 33:
VERBOSE | Found 2 DNS servers:
VERBOSE | fe80::16de:39ff:fe44:5806
VERBOSE | 192.168.1.1
wd...@google.com <wd...@google.com> #12
RE#11 Ok, let me see what has been changed from build 9456632 to build 9536276. Thanks again for the information.
wd...@google.com <wd...@google.com> #13
RE#11
I found the culprit. It's this /etc/resolve.conf
are passed into slirp instances.
In Android Emulator 32.1.11-9536276, the aforementioned CL was not cherry-picked while in emulator 31.3.15-9456632, the CL was merged. Therefore, the "problematic" link local DNS is passed into emulator 31 release but not emulator 32 release.
Solution: make sure the
go...@gmail.com <go...@gmail.com> #15
wd...@google.com <wd...@google.com> #16
RE#15 It seems like this is a different topic if you cannot install android studio on your laptop. Would you like to file a different bug?
Description
Description has been deleted.