发布 APK 中的对象动画器问题



我已经在我的应用程序中使用对象动画器完成了某种动画,并且在调试变体中工作正常。但是在生产中,我已经为此启用了 proguard,但它没有按预期工作。我搜索了很多以将这个文件保存在 proguard 中,但没有运气。请帮我解决这个问题。

我尝试了以下方法

 -keep class ma.smartshift.loadtaker.loginv2.** { *; }
-keepclassmembers public class android.animation.ObjectAnimator {
   void set*(***);
   *** get*();
}

我知道这是一个相当古老的问题,但当我偶然发现它时,我认为其他人也可能。

因此,使用 Proguard 是正确的方法,但您排除了错误的类。

您需要排除ObjectAnimator目标类中的函数,而不是ObjectAnimator本身。

假设您有一个对象动画师对BottomSheetBehavior的窥视高度进行动画处理:

ObjectAnimator.ofInt(
    bottomSheetBehavior,
    "peekHeight",
    resources.getDimension(R.dimen.miniplayer_peek_height).toInt(),
    resources.getDimension(R.dimen.miniplayer_peek_height_anim_max).toInt()
)

然后,您需要将以下内容添加到您的 proguard 规则中:

-keep class com.google.android.material.bottomsheet.BottomSheetBehavior {
    setPeekHeight(int);
}

最新更新