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