Android Studio 3.1.3 Gradle插件3.1.3,上周没有.gradle文件更改。大约1周前,我制作了适用于我所有设备的APK版本。今天,我试图做另一个发行。第一次测试执行导致臭名昭著的“不可能”枚举错误,它与以下问题相同:Android release APK crash with java.lang.AssertionError: impossible in java.lang.Enum
我遵循了第一个答案,重建并部署了apk。在启动时,它仍然崩溃,但有一个例外。由于跟踪时间很长,因此下面包含没有堆栈跟踪的消息:
android.view.InflateException: Binary XML file line #63: Binary XML file line #63: Error inflating class android.support.design.widget.TextInputEditText
Caused by: java.lang.reflect.InvocationTargetException
at android.view.LayoutInflater.createView(LayoutInflater.java:619)
以我的经验,这意味着类android.support.design.widget.TextInputEditText
完全丢失了(至少是构造函数)。但是,我在构建中找到aapt_rules.txt
,然后将其打开。内容为here on pastebin。里面有TextInputEditText构造函数的keep规则。
谁能帮助为什么突然不应用自动生成的规则?错误的APK比最后一个良好的APK小0.2MB。我的build.gradle具有如下的proguard配置:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'