android - 发布版本中的 ActionBar 缺少后退箭头,但调试版本中没有

标签 android android-layout proguard android-proguard android-jetpack

当我从我的 Android 应用程序的调试版本转移到发布版本时,ActionBar 中的后退导航箭头被汉堡包取代(因为需要更好的名称),这不是我想要的。

这是调试版本,应该有后退箭头。

enter image description here

这是带有汉堡包的发布版本。

enter image description here

这是当用户使用 Jetpack 导航组件导航到 fragment 时出现的默认后退箭头,在 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 { *; }

显然,后退箭头可绘制对象 (DrawerArrowDrawable) 默认情况下会被 Proguard 混淆。这为我解决了问题,我没有任何其他 Proguard 规则。

并且您还应该将 android.support.v4.app.Fragment 替换为 androidx.fragment.app.Fragment(尽管它与您的问题无关)

关于android - 发布版本中的 ActionBar 缺少后退箭头,但调试版本中没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53863743/

相关文章:

java - 在模拟器中运行时,TextView 在自定义对话框中不可见

Android:proguard 没有混淆源代码

java - 未知来源的 Proguard 和 Libgdx NullPointerException

android - 揭开这个命令行构建序列的神秘面纱

Android 视频编辑器类

android - 执行 ContentResolver 插入时出错

java - OSMDROID OnItemGestureListener

android - 在风格中定义 ID,是安全还是灾难?

android - TabLayout 选项卡文本未显示

android - RxJava 和 FasterXML 是否有有效的 proguard 规则?