Мы столкнулись со странной проблемой, так как мы обновились до 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.
При переносе проекта Android на AS 3.0 кажется, что только с помощью нового плагина Gradle
classpath 'com.android.tools.build:gradle:3.0.0'
без изменения остальных файлов Gradle достаточно, чтобы спровоцировать эту ошибку. Однако полностью перенесенный проект также имеет эту проблему.
Может ли это быть ошибкой плагина Gradle?