Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
It turns out this issue is due to by navArgs()
moving to navigation-common
, but the ProGuard rules still being located in the (now empty) navigation-common-ktx
. This means you can work around this issue by explicitly adding a dependency on androidx.navigation:navigation-common-ktx:2.4.0-alpha02
.
st...@zeppelin.co.jp <st...@zeppelin.co.jp> #3
Project: platform/frameworks/support
Branch: androidx-main
commit 55af5f168e5a1e6dc73c8d35ac79598cb4ae5bd8
Author: Ian Lake <ilake@google.com>
Date: Wed Jun 09 16:57:14 2021
Move ProGuard rules from navigation-common-ktx to common
NavArgsLazy was moved to navigation-common, but
the related proguard-rules.pro wasn't moved with it.
This meant that apps that didn't specifically include
the (now empty) navigation-common-ktx artifact wouldn't
get the correct set of ProGuard rules.
Test: tested in sample app
BUG: 190082521
Relnote: "ProGuard rules for `by navArgs()` now properly
apply when using `navigation-common` or any artifacts
that depend on it."
Change-Id: I688009632403c98afe728d856ce91cd056ef32a5
M navigation/navigation-common-ktx/build.gradle
M navigation/navigation-common/build.gradle
M navigation/navigation-common/proguard-rules.pro
https://android-review.googlesource.com/1732586
Branch: androidx-main
commit 55af5f168e5a1e6dc73c8d35ac79598cb4ae5bd8
Author: Ian Lake <ilake@google.com>
Date: Wed Jun 09 16:57:14 2021
Move ProGuard rules from navigation-common-ktx to common
NavArgsLazy was moved to navigation-common, but
the related proguard-rules.pro wasn't moved with it.
This meant that apps that didn't specifically include
the (now empty) navigation-common-ktx artifact wouldn't
get the correct set of ProGuard rules.
Test: tested in sample app
BUG: 190082521
Relnote: "ProGuard rules for `by navArgs()` now properly
apply when using `navigation-common` or any artifacts
that depend on it."
Change-Id: I688009632403c98afe728d856ce91cd056ef32a5
M navigation/navigation-common-ktx/build.gradle
M navigation/navigation-common/build.gradle
M navigation/navigation-common/proguard-rules.pro
b9...@gmail.com <b9...@gmail.com> #4
This has been fixed internally and will be available in Navigation 2.4.0-alpha03.
wk...@google.com <wk...@google.com> #5
I'll take it, it should be possible to do both
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 5a90b4603457fd3218e2710eb6405736b5f60a48
Author: Wojtek Kaliciński <wkal@google.com>
Date: Tue Mar 31 12:42:26 2020
Placeholder and default support in app:graphPackage
It's possible to specify ${applicationId} in the graphPackage string.
If graphPackage is omitted a default will be provided at runtime:
context.packageName + "." + moduleName
Relnote: "For dynamic graph includes you no longer need to specify
`app:graphPackage` and a default one will be used by adding `moduleName`
suffix to the `applicationId` after a dot. If you do need to customize
your `graphPackage`, an `${applicationId}` placeholder is now supported."
Test: DynamicIncludeGraphNavigatorTest
Fixes: b/152696768
Change-Id: Ida52ce2100fbc3275bf230c5dad6362b4e36cc9f
M navigation/navigation-dynamic-features-runtime/src/main/java/androidx/navigation/dynamicfeatures/DynamicIncludeGraphNavigator.kt
M navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicIncludeGraphNavigatorTest.kt
M navigation/navigation-runtime/src/main/java/androidx/navigation/NavInflater.java
https://android-review.googlesource.com/1272905
Branch: androidx-master-dev
commit 5a90b4603457fd3218e2710eb6405736b5f60a48
Author: Wojtek Kaliciński <wkal@google.com>
Date: Tue Mar 31 12:42:26 2020
Placeholder and default support in app:graphPackage
It's possible to specify ${applicationId} in the graphPackage string.
If graphPackage is omitted a default will be provided at runtime:
context.packageName + "." + moduleName
Relnote: "For dynamic graph includes you no longer need to specify
`app:graphPackage` and a default one will be used by adding `moduleName`
suffix to the `applicationId` after a dot. If you do need to customize
your `graphPackage`, an `${applicationId}` placeholder is now supported."
Test: DynamicIncludeGraphNavigatorTest
Fixes:
Change-Id: Ida52ce2100fbc3275bf230c5dad6362b4e36cc9f
M navigation/navigation-dynamic-features-runtime/src/main/java/androidx/navigation/dynamicfeatures/DynamicIncludeGraphNavigator.kt
M navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicIncludeGraphNavigatorTest.kt
M navigation/navigation-runtime/src/main/java/androidx/navigation/NavInflater.java
il...@google.com <il...@google.com> #7
We've fixed this internally and it'll be available in Navigation 2.3.0-alpha05.
b9...@gmail.com <b9...@gmail.com> #8
So quick! Thanks!👍
Description
Just like the doc says:
app:graphPackage: the package name of the dynamic feature module. The package name is usually in the form of applicationId.moduleName. You can verify the package name by opening a dynamic feature APK in Android Studio's APK Analyzer and then opening the resources.arsc file, which is located in the root folder of your APK.
applicationId will changed between build variants in Gradle (dev/rc/staging), thus we can't hardcode applicationId.moduleName in xml without using placeholder, further more I think graphPackage attr could be replaced by "${applicatonId}.$moduleName", so that we don't need write this manually.