我已经在我的应用程序中使用对象动画器完成了某种动画,并且在调试变体中工作正常。但是在生产中,我已经为此启用了 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);
}