8

启用 proguard 后,这段简单的代码将无法按预期工作:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/show"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:layout_marginTop="40dp"
        android:text="Show snackbar" />


    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_margin="16dp"
        android:src="@drawable/ic_save_white_24dp"
        app:layout_anchorGravity="bottom|right|end" />


</android.support.design.widget.CoordinatorLayout>

所需的行为FloatingActionButton在显示时已被推倒SnackBar,但直到我禁用 proguard 才会发生。

没有教程也涵盖了这一点,因为新项目默认禁用了 proguard ;)

有人知道设计支持库的 proguard 配置吗?

4

2 回答 2

6

尝试这个:

# support design
-dontwarn android.support.design.**
-keep class android.support.design.** { *; }
-keep interface android.support.design.** { *; }
-keep public class android.support.design.R$* { *; }
于 2015-07-22T07:46:49.173 回答
3

Google 已通过 AAR 中的嵌入式 ProGuard 配置修复了此错误。只需在 build.gradle 中将设计库依赖项更新为 23+。

于 2015-08-31T09:34:39.547 回答