Fixed
Status Update
Comments
il...@google.com <il...@google.com>
da...@google.com <da...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
Author: Jeremy Woods <
Link:
Convert navigation-testing to KMP
Expand for full commit details
Convert navigation-testing to KMP
Moving the navigation-testing module to KMP. This supports all the same
platforms as the rest of Navigation and has converted all uses of Bundle
to the new SaveState.
RelNote: "Navigation Testing is now a KMP module."
Test: all tests pass
Bug: 398265336
Change-Id: I2b7707a56f263be30420cae57e3b38480d7f0625
Files:
- M
docs-tip-of-tree/build.gradle
- A
navigation/navigation-testing/bcv/native/current.txt
- M
navigation/navigation-testing/build.gradle
- M
navigation/navigation-testing/src/androidInstrumentedTest/AndroidManifest.xml
- M
navigation/navigation-testing/src/androidInstrumentedTest/kotlin/androidx/navigation/testing/TestNavHostControllerTest.kt
- M
navigation/navigation-testing/src/androidInstrumentedTest/kotlin/androidx/navigation/testing/TestNavigatorStateTest.kt
- M
navigation/navigation-testing/src/androidInstrumentedTest/res/navigation/test_graph.xml
- M
navigation/navigation-testing/src/androidMain/AndroidManifest.xml
- M
navigation/navigation-testing/src/androidMain/kotlin/androidx/navigation/testing/TestNavHostController.android.kt
- M
navigation/navigation-testing/src/androidMain/kotlin/androidx/navigation/testing/TestNavigatorState.android.kt
- A
navigation/navigation-testing/src/androidUnitTest/kotlin/androidx/navigation/testing/RobolectricTest.android.kt
- M
navigation/navigation-testing/src/androidUnitTest/kotlin/androidx/navigation/testing/TestSavedStateHandleFactory.kt
- A
navigation/navigation-testing/src/commonMain/kotlin/androidx/navigation/testing/SavedStateHandleFactory.kt
- M
navigation/navigation-testing/src/commonMain/kotlin/androidx/navigation/testing/TestNavigatorProvider.kt
- D
navigation/navigation-testing/src/main/AndroidManifest.xml
- D
navigation/navigation-testing/src/main/java/androidx/navigation/testing/SavedStateHandleFactory.kt
Hash: 31ae4c7ebb13918db0e022b19246b7a47755ac65
Date: Fri Mar 07 09:11:14 2025
vi...@gmail.com <vi...@gmail.com> #3
Project: platform/frameworks/support
Branch: androidx-main
Author: Jeremy Woods <
Link:
Implement jvmTest for navigation-testing
Expand for full commit details
Implement jvmTest for navigation-testing
Adding a copy of TestSavedStateHandleFactory to jvmCommonTest to ensure
that is runs on all nonAndroid platforms.
The `nullLiteralArgument` and `emptyStringArgument` tests are expected
to fail as they require the encoding and decoding the types which is
behavior only supported on the jetbrains fork.
Test: added tests
Bug: 398265336
Change-Id: I4c1dcfb697d6e9e16995b249b9a8351bd925e0f3
Files:
- M
navigation/navigation-testing/build.gradle
- A
navigation/navigation-testing/src/jvmCommonTest/kotlin/androidx/navigation/testing/TestSavedStateHandleFactory.kt
Hash: 139d2423c7625f19ececc94b2df5bfde24e2cf95
Date: Fri Mar 14 23:48:06 2025
da...@google.com <da...@google.com> #4
A fix for this issue will be available in alpha09
il...@google.com <il...@google.com> #5
or...@gmail.com <or...@gmail.com> #6
Am using alpha09 here (had been seeing issue mentioned above before updating)....but not getting following during gradle sync. I'm using Android Studio 3.4 Canary 9 (but also had same problem using 3.3 RC3)
Caused by: kotlin.TypeCastException: null cannot be cast to non-null type org.gradle.api.resources.TextResource
at androidx.navigation.safeargs.gradle.SafeArgsPlugin.setApplicationId(SafeArgsPlugin.kt:87)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin.access$setApplicationId(SafeArgsPlugin.kt:39)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin$apply$1$task$1.execute(SafeArgsPlugin.kt:63)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin$apply$1$task$1.execute(SafeArgsPlugin.kt:39)
at org.gradle.api.internal.tasks.DefaultTaskContainer.create(DefaultTaskContainer.java:360)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin$apply$1.invoke(SafeArgsPlugin.kt:59)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin$apply$1.invoke(SafeArgsPlugin.kt:39)
at androidx.navigation.safeargs.gradle.SafeArgsPluginKt$sam$org_gradle_api_Action$0.execute(SafeArgsPlugin.kt)
at org.gradle.internal.ImmutableActionSet$SingletonSet.execute(ImmutableActionSet.java:225)
at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:247)
at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:236)
at com.android.build.gradle.LibraryExtension.addVariant(LibraryExtension.java:93)
at com.android.build.gradle.FeatureExtension.addVariant(FeatureExtension.java:121)
at com.android.build.gradle.internal.ApiObjectFactory.create(ApiObjectFactory.java:134)
Caused by: kotlin.TypeCastException: null cannot be cast to non-null type org.gradle.api.resources.TextResource
at androidx.navigation.safeargs.gradle.SafeArgsPlugin.setApplicationId(SafeArgsPlugin.kt:87)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin.access$setApplicationId(SafeArgsPlugin.kt:39)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin$apply$1$task$1.execute(SafeArgsPlugin.kt:63)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin$apply$1$task$1.execute(SafeArgsPlugin.kt:39)
at org.gradle.api.internal.tasks.DefaultTaskContainer.create(DefaultTaskContainer.java:360)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin$apply$1.invoke(SafeArgsPlugin.kt:59)
at androidx.navigation.safeargs.gradle.SafeArgsPlugin$apply$1.invoke(SafeArgsPlugin.kt:39)
at androidx.navigation.safeargs.gradle.SafeArgsPluginKt$sam$org_gradle_api_Action$0.execute(SafeArgsPlugin.kt)
at org.gradle.internal.ImmutableActionSet$SingletonSet.execute(ImmutableActionSet.java:225)
at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:247)
at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:236)
at com.android.build.gradle.LibraryExtension.addVariant(LibraryExtension.java:93)
at com.android.build.gradle.FeatureExtension.addVariant(FeatureExtension.java:121)
at com.android.build.gradle.internal.ApiObjectFactory.create(ApiObjectFactory.java:134)
or...@gmail.com <or...@gmail.com> #7
that should read - "but now getting following...."1
Description
Version used: 1.0.0-alpha07
Devices/Android versions reproduced on:
- Android Studio 3.4 Canary 4
- Multi features app (with instant app)
- Using apply plugin: 'androidx.navigation.safeargs' in a baseFeature module.
Error:
ERROR: variant.getApplicationId() is not supported by feature plugins as it cannot handle delayed setting of the application ID. Please use getApplicationIdTextResource() instead.
Affected Modules: base
If this is a bug in the library, we would appreciate if you could attach:
- Sample project to trigger the issue.
- A screenrecord or screenshots showing the issue (if UI related).
Follow this instructions:
- Clone the official googlesamples android-instant-apps
- Open the multi-feature-module project with Android Studio 3.4 Canary 4
- Add android.arch.navigation to the project :
multi-feature-module build.gradle:
[…]
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0-alpha04'
classpath 'android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha07'
}
}
[…]
base build.gradle:
apply plugin: 'com.android.feature'
apply plugin: 'androidx.navigation.safeargs'
android {
[…]
- sync gradle files and you get the error:
ERROR: variant.getApplicationId() is not supported by feature plugins as it cannot handle delayed setting of the application ID. Please use getApplicationIdTextResource() instead.
Affected Modules: base