【发布时间】:2017-11-02 12:58:22
【问题描述】:
自从我们升级到 Android Studio 3.0(使用 Android Gradle 插件 3.0.0)后,我们遇到了一个奇怪的问题。
我们的应用使用MaterialEditText 库。在 AS 3.0 之前一切正常。现在,在我们将项目迁移到 AS 3.0 并使用此版本的 Android Studio 和相关的 Gradle 插件编译应用程序后,当使用 MaterialEditText 组件时应用程序崩溃:
Caused by: java.lang.RuntimeException: Font asset not found res/drawable-mdpi-v4/ic_clear_search_api_holo_dark.png
at android.graphics.Typeface.createFromAsset(Typeface.java:304)
at com.rengwuxian.materialedittext.MaterialAutoCompleteTextView.getCustomTypeface(MaterialAutoCompleteTextView.java:488)
at com.rengwuxian.materialedittext.MaterialAutoCompleteTextView.init(MaterialAutoCompleteTextView.java:385)
at com.rengwuxian.materialedittext.MaterialAutoCompleteTextView.<init>(MaterialAutoCompleteTextView.java:325)
... 40 more
似乎typedArray.getString(R.styleable.MaterialEditText_met_accentTypeface) 突然解析为MaterialAutoCompleteTextView 行383 中的某个随机可绘制路径。但是,这仅发生在 Android 低于 8.0 的设备上。在 Android 8.0 上,该应用运行良好。
在升级到 AS 3.0 期间我们的样式没有改变:
<item name="met_typeface">fonts/UnitRoundedOT.otf</item>
<item name="met_accentTypeface">fonts/UnitRoundedOT.otf</item>
另请参阅 MaterialEditText 库的相关issue。
将 Android 项目迁移到 AS 3.0 时,似乎只使用新的 Gradle 插件
classpath 'com.android.tools.build:gradle:3.0.0'
不更改 Gradle 文件的其余部分就足以引发此错误。然而,一个完全迁移的项目也有这个问题。
这可能是 Gradle 插件的错误吗?
【问题讨论】:
标签: android android-studio android-gradle-plugin android-studio-3.0