public final class ProgressWidget extends LinearLayout {
<Default Constructors implemented> {
setOrientation(LinearLayout.VERTICAL);
inflate(context, R.layout.horizontal_progress, this);
}
@Override
protected void onFinishInflate() {
//Continue with rest of the logic.
}
}
R.layout.horizontal_progress имеет 35 строк.android.view.InflateException: двоичная строка XML-файла # 39: ошибка раздувания класса ProgressWidget
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/progressTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/rounded_white_background"
android:gravity="center"
android:textColor="@color/light_black"
android:textSize="12sp"
android:fontFamily="roboto-regular"
android:paddingTop="1dp"
android:paddingBottom="1dp"
android:paddingLeft="2dp"
android:paddingRight="2dp" />
<SeekBar
android:id="@+id/progress"
android:layout_width="match_parent"
android:layout_height="@dimen/horizontal_progress_height"
android:indeterminate="false"
android:progressDrawable="@drawable/horizontal_progress"
android:gravity="center"
android:thumb="@null"
android:progress="0"
android:secondaryProgress="0"
android:max="100"
android:minHeight="@dimen/horizontal_progress_height"
android:paddingTop="1dp"
android:paddingBottom="1dp"
android:paddingLeft="2dp"
android:paddingRight="2dp" />
</merge>
R.drawable.horizontal_progress имеет 36 линий.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<item android:id="@android:id/background">
<shape android:shape="rectangle" >
<corners android:radius="@dimen/horizontal_progress_radius" />
<gradient
android:startColor="@color/horizontal_progress_background"
android:endColor="@color/horizontal_progress_background"
android:angle="270"/>
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape android:shape="rectangle" >
<corners android:radius="@dimen/horizontal_progress_radius" />
<gradient
android:startColor="@android:color/white"
android:endColor="@android:color/white"
android:angle="270"/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape android:shape="rectangle" >
<corners android:radius="@dimen/horizontal_progress_radius" />
<gradient
android:startColor="?android:attr/colorAccent"
android:endColor="?android:attr/colorAccent"
android:angle="270"
tools:ignore="NewApi"/>
</shape>
</clip>
</item>
</layer-list>
Последний отрезок следа стека.
Вызванный: android.view.InflateException: Binary XML файл строка # 39: Ошибка при наполнении класса ProgressWidget в android.view.LayoutInflater.createView (LayoutInflater.java:620) в android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:696) на android.view.LayoutInflater.rInflate (LayoutInflater.java:755) в android.view.LayoutInflater.rInflate (LayoutInflater.java:758) в android.view.LayoutInflater.inflate (LayoutInflater. java: 462) на android.view.LayoutInflater.inflate (LayoutInflater.java:397) на android.view.LayoutInflater. (LayoutInflater.java:353) на android.view.View.inflate (View.java:1746
Все работает прямо на телефоне - Samsung Galaxy S5 SM-G900A, версия Android 5.0. Всегда сбой с превышением стека на Asus Nexus 7, Android 4.4.3.
Этот ProgressWidget представляет собой настраиваемый компонент многократного использования модуля библиотеки Android, который будет использоваться с модулем проекта. Ожидается, что основной модуль проекта будет обслуживать minSDKVersion 16 вплоть до TargetSDKVersion 24.
Будут оценены любые указатели относительно того, что может вызвать сбои только на планшетном устройстве.
У меня есть еще одна проблема, и я предполагаю, как, вероятно, связаны. http://stackoverflow.com/questions/39173996/android-resolving-style-properties-and-attributes Рассмотрите этот ProgressWidget как пользовательский виджет в библиотечном модуле, и я пытаюсь разрешить тему из главного модуля проекта на время выполнения. В любом случае, я попробовал «attr/colorAccent», но безрезультатно. – AndroidRocks