android studio 3.5 警告:规则 `-keep public class * extends androidx.versionedparcelable.VersionedParcela

Posted

技术标签:

【中文标题】android studio 3.5 警告:规则 `-keep public class * extends androidx.versionedparcelable.VersionedParcelable <init>(); ` 使用扩展【英文标题】:android studio 3.5 Warning: The rule `-keep public class * extends androidx.versionedparcelable.VersionedParcelable <init>(); ` uses extendsandroid studio 3.5 警告:规则 `-keep public class * extends androidx.versionedparcelable.VersionedParcelable <init>(); ` 使用扩展 【发布时间】:2019-12-27 08:08:03 【问题描述】:

今天,我将我的 android Studio 更新到了 3.5。更新后,我在尝试运行该应用时发现以下警告。

规则 -keep public class * extends androidx.versionedparcelable.VersionedParcelable (); 使用 扩展但实际上匹配工具。

我知道警告与我的 proguard 规则有关。所以,我仔细检查了我的 proguard 规则文件,但我确定我没有添加该规则,并且它不在我的 proguard 规则文件中。

以下是我构建项目时的警告。

我的项目正在使用 AndroidX。谁能知道可以跳过警告或该警告来自哪里?任何想法或替代方式都会受到赞赏..

【问题讨论】:

那是因为VersionedParcelable是一个interface,只能实现,不能扩展。除了你的之外,你还在使用默认的 proguard 规则文件吗? 对不起。你能改写吗?我正在使用我自己的 progurad 规则。 你能在你的 build.gradle 中显示你正在使用你自己的 proguard 规则文件的那一行吗? P. S. 请停止显示代码图像。仅显示文本。 我个人不使用默认的。您可以使用 `proguardFile 'proguard-rules.pro' 代替该行 【参考方案1】:

这是versionedparcelable.aar 1.0.0 版中proguard.txt 文件中的一个错误。这在版本 1.1.0 中已修复,但是,如果您不使用依赖于新版本的库,您将在 Android Studio 3.5 中收到此警告。

在 1.0.0 版本中,proguard.txt 文件包含以下行:

-keep public class * extends androidx.versionedparcelable.VersionedParcelable

这已在 1.1.0 版中修复:

-keep public class * implements androidx.versionedparcelable.VersionedParcelable

要绕过此问题,您可以通过在 build.gradle 中添加以下行来强制使用最新版本:

implementation "androidx.versionedparcelable:versionedparcelable:1.1.0"

【讨论】:

【参考方案2】:

为什么不为那个项目这样做:

    在“build.gradle (Module: app)”文件中禁用缩小:
minifyEnabled false
    而您使用 proguard 进行优化,例如:
proguardFiles getDefaultProguardFile ('proguard-android-optimize.txt')

【讨论】:

同样,您可以更新到compileSdkVersion 29 并迁移到 AndrodX。这是最好的解决方案。 是的,但那是一个快速简便的解决方案。同意吗?

以上是关于android studio 3.5 警告:规则 `-keep public class * extends androidx.versionedparcelable.VersionedParcela的主要内容,如果未能解决你的问题,请参考以下文章

android studio 升级到3.5版本报错gradle无法获取pom文件

将签名的 apk 从 android studio 部署到设备

安装失败,原因是:'null' - Android Studio 3.5

ProGuard 优化通过了在 Android Studio 3.4.1 中突然生成构建时跳过的 5 条规则

Android Studio 3.5 重构问题

Android studio 3.5签名出现异常解决办法