当我从
Android应用程序的调试版本转移到发布版本时,ActionBar中的后导航箭头被汉堡包取代(因为缺少更好的名称),这不是我想要的.
这是调试版本,后面应该是箭头.
这是发布版本,汉堡包.
这是用户使用Jetpack Navigation Component导航到片段时出现的默认后退箭头,在AppBarLayout中如下所示:
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/AppTheme.PopupOverlay">
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
当我在发布版本中关闭缩小时,后退箭头重新出现.所以它与缩小有关.
但是我告诉ProGuard要保留什么?我试过这一切,但没有一个帮助:
-keep class androidx.appcompat.widget.Toolbar{}
-keep class androidx.navigation.NavController{}
-keep class androidx.navigation.Navigation{}
-keep class androidx.navigation.ui.AppBarConfiguration{}
-keep class androidx.navigation.ui.navigateUp.** {*;}
-keep class * extends android.support.v4.app.Fragment{}
-keep class com.google.android.material.appbar.AppBarLayout{}
提前致谢!
最佳答案 我有同样的问题,并在
Google Issue Tracker发现它.有人在那里有一个解决方案:
-keep class androidx.appcompat.graphics.drawable.DrawerArrowDrawable { *; }
显然,Proguard默认对后箭头drawable(DrawerArrowDrawable)进行了模糊处理.这解决了我的问题,我没有任何其他Proguard规则.
你还应该用androidx.fragment.app.Fragment替换android.support.v4.app.Fragment(尽管它与你的问题无关)