Мы только что получили ту же проблему, проблема в том, что в новой версии добавлены некоторые дополнительные утверждения, поэтому старый код может перестать работать, из-за того, как работает макет ограничения, трассировка стека совсем не интуитивна.
public ConstraintAnchor getAnchor(Type anchorType) {
switch(anchorType) {
case LEFT:
case RIGHT:
if (this.mOrientation == 1) {
return this.mAnchor;
}
break;
case TOP:
case BOTTOM:
if (this.mOrientation == 0) {
return this.mAnchor;
}
break;
case BASELINE:
case CENTER:
case CENTER_X:
case CENTER_Y:
case NONE:
return null;
}
throw new AssertionError(anchorType.name());
}
Это метод, который вызывает исключение. Что проверяет, так это то, что если направляющая является вертикальной, то любой элемент, который добавляет к нему ограничение, должен делать это по горизонтали (начало или конец) и наоборот для вертикальных направляющих.
В нашем случае мы использовали макет, используя
app:layout_constraintTop_toBottomOf="@+id/guideline"
app:layout_constraintStart_toStartOf="@+id/guideline"
Проверьте свои макеты и убедитесь, что вы добавили правильное ограничение в директиву.