AndroidX AppCompat 包的 Proguard 规则
Posted
技术标签:
【中文标题】AndroidX AppCompat 包的 Proguard 规则【英文标题】:Proguard rules for AndroidX AppCompat package 【发布时间】:2019-08-28 13:00:18 【问题描述】:到目前为止,我一直在使用 AppCompat 库,但现在我已将我的项目迁移到 androidX 库。
我被 androidx 的 proguard 规则困住了。
如您所知,我们正在为 AppCompat 使用 proguard 规则,如下所示:
-keep public class android.support.v7.widget.** *;
-keep public class android.support.v7.internal.widget.** *;
-keep public class android.support.v7.internal.view.menu.** *;
-keep public class * extends android.support.v4.view.ActionProvider
public <init>(android.content.Context);
我搜索了很多,但没有找到任何合适的文档。
AndroidX Proguard 规则有更新吗?
【问题讨论】:
我认为您只需将android.support.v7
替换为 androidx.appcompat
并供 ActionProvider 使用 androidx.core.view.ActionProvider
。而androidx.appcompat.widget
代替android.support.v7.internal.widget
.. 我的意思是按照映射和see the output 。
【参考方案1】:
AppCompat 已经直接在 AAR 中包含了它需要的 ProGuard 规则:无需声明任何特殊的 ProGuard 规则。
因此,您可以完全删除您的自定义规则。
【讨论】:
以上是关于AndroidX AppCompat 包的 Proguard 规则的主要内容,如果未能解决你的问题,请参考以下文章
AndroidX迁移-androidx.legacy:legacy-support-v4或androidx.appcompat:appcompat
androidx.appcompat.widget.SearchView 无法转换为 androidx.core.view.ActionProvider
androidx.appcompat.widget.AppCompatTextView 与 API < 26 不兼容
迁移到AndroidX后:无法实例化类:androidx.appcompat.widget.ShareActionProvider。