Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
Please attach a sample project that reproduces your issue.
va...@gmail.com <va...@gmail.com> #3
il...@google.com <il...@google.com>
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-master-dev
commit bd065925676170c8453321e970d455fac06b8d3d
Author: Ian Lake <ilake@google.com>
Date: Mon Jan 28 15:47:16 2019
Add ProGuard rules for DrawerArrowDrawable.setProgress()
setProgress() is called via an ObjectAnimator and
therefore needs to be specifically kept when
obfuscating with ProGuard.
Test: tested in sample project attached to bug
Change-Id: I9c420ce728c5cb887d29df9f856bfd31f5bdbcdf
Fixes: 123449431
M navigation/ui/build.gradle
A navigation/ui/proguard-rules.pro
https://android-review.googlesource.com/887876
https://goto.google.com/android-sha1/bd065925676170c8453321e970d455fac06b8d3d
Branch: androidx-master-dev
commit bd065925676170c8453321e970d455fac06b8d3d
Author: Ian Lake <ilake@google.com>
Date: Mon Jan 28 15:47:16 2019
Add ProGuard rules for DrawerArrowDrawable.setProgress()
setProgress() is called via an ObjectAnimator and
therefore needs to be specifically kept when
obfuscating with ProGuard.
Test: tested in sample project attached to bug
Change-Id: I9c420ce728c5cb887d29df9f856bfd31f5bdbcdf
Fixes: 123449431
M navigation/ui/build.gradle
A navigation/ui/proguard-rules.pro
il...@google.com <il...@google.com> #5
We've added the appropriate ProGuard configuration and it'll be available in the next release.
As a workaround, you can add the following to your ProGuard configuration:
-keepclassmembers class android.support.v7.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
As a workaround, you can add the following to your ProGuard configuration:
-keepclassmembers class android.support.v7.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
va...@gmail.com <va...@gmail.com> #6
Sure, thanks for the quick fix.
va...@gmail.com <va...@gmail.com> #7
I had to use the androidx version for proguard rules
-keepclassmembers class androidx.appcompat.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
-keepclassmembers class androidx.appcompat.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
il...@google.com <il...@google.com> #8
Yep, Jetifier will automatically convert ProGuard rules packaged with libraries, but if you're adding the ProGuard files to your own project, you'll need to make sure to use the AndroidX equivalents if your project is using AndroidX.
br...@gmail.com <br...@gmail.com> #9
This issue seems to be back again? ... I'm using v2.2.0-rc02 and have run into the issue. Using the proguard rule below (mentioned in #7 above) to work around the issue seems to fix it.
-keepclassmembers class androidx.appcompat.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
Looking at the commit linked above that fixed the issue originally, it adds a proguard rule to fix the issue for the old support library, but not a rule for the AndroidX equivalent. #8 suggests that Jetifier will handle the AndroidX conversion, but that doesn't seem to be the case? I'm using AndroidX and Jetifier and without the specfic -keep rule above for androidx, my back arrow icon gets removed in release (minified) builds.
-keepclassmembers class androidx.appcompat.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
Looking at the commit linked above that fixed the issue originally, it adds a proguard rule to fix the issue for the old support library, but not a rule for the AndroidX equivalent. #8 suggests that Jetifier will handle the AndroidX conversion, but that doesn't seem to be the case? I'm using AndroidX and Jetifier and without the specfic -keep rule above for androidx, my back arrow icon gets removed in release (minified) builds.
il...@google.com <il...@google.com> #10
Re #9 - I filed
jb...@google.com <jb...@google.com> #11
Do you have jetifier enabled by adding android.enableJetifier=true
in your gradle.properties file? If so it should work fine. We opened a bug to change the rule over so that enabling jetifier is not required in a future release (
br...@gmail.com <br...@gmail.com> #12
Re #11, I do have jetifier enabled, and still see the regression mentioned in #9
Description
Version used: 1.0.0-alpha11
Devices/Android versions reproduced on: Android Pie, Pixel 2 XL
Back arrow is not shown in tool bar (set as support action bar) in release build with minifyEnabled. Hamburger icon is still shown and is functional (navigates back to previous fragment). The fragment having the issue is not set as a topLevelDestinationIds in AppBarConfiguration (used in setupActionBarWithNavController)
Works fine in
debug build
release build ( with minifyEnabled false, shrinkResources false and useProguard true )
Fails in
release build ( with minifyEnabled true, shrinkResources false and useProguard true )
Does navigation need something for release builds with minifyEnabled?