Я использую библиотеку с классом, который расширяет TabLayout.Я пытаюсь собрать с последними библиотеками поддержки:
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:preference-v14:28.0.0'
implementation 'com.android.support:support-v13:28.0.0'
Это приводит к сбою:
java.lang.NoSuchMethodError: No virtual method setOnTabSelectedListener(Landroid/support/design/widget/TabLayout$OnTabSelectedListener;)
Это источник из декомпилированного файла TabLayout.class
(Это непохоже, что у jar исходного кода, как в других версиях):
/** @deprecated */
@Deprecated
public void setOnTabSelectedListener(@Nullable TabLayout.BaseOnTabSelectedListener listener) { ... }
public interface OnTabSelectedListener extends TabLayout.BaseOnTabSelectedListener<TabLayout.Tab> {
}
public interface BaseOnTabSelectedListener<T extends TabLayout.Tab> { ... }
Он работает с 27.1.1 и более ранними версиями, где источник выглядит так:
/**
* @deprecated Use {@link #addOnTabSelectedListener(OnTabSelectedListener)} and
* {@link #removeOnTabSelectedListener(OnTabSelectedListener)}.
*/
@Deprecated
public void setOnTabSelectedListener(@Nullable OnTabSelectedListener listener) { ... }
/**
* Callback interface invoked when a tab's selection state changes.
*/
public interface OnTabSelectedListener { ... }
Яработает в Genymotion с Samsung Galaxy S8 - API 26 - 1440x2960.
Я не уверен, есть ли проблема с библиотекой design: 28.0.0 или, возможно, я что-то не так делаю в сборке.Кажется, работает нормально с более ранними версиями.Любой совет приветствуется.