Я использую библиотеку с классом, расширяющим 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 или, может быть, я просто делаю что-то неправильно в сборке. Кажется, с более ранними версиями все работает нормально. Любые советы приветствуются.
addOnTabSelectedListener(OnTabSelectedListener)
вместоsetOnTabSelectedListener(...)
- person Ümañg ßürmån   schedule 19.10.2018