java.lang.NoSuchMethodError: нет статического метода setOnApplyWindowInsetsListener

Я обновил свою студию Android до 2.1.3. И теперь я получаю следующую ошибку

java.lang.NoSuchMethodError: No static method setOnApplyWindowInsetsListener(Landroid/view/View;Landroid/support/v4/view/OnApplyWindowInsetsListener;)V in class Landroid/support/v4/view/ViewCompatLollipop; or its super classes (declaration of 'android.support.v4.view.ViewCompatLollipop' appears in /data/data/com.restroshop.restroowner/files/instant-run/dex/slice-internal_impl-24.2.0_7c318f8d2adb03d07a9def5d35a14e39204ecef2-classes.dex)
at android.support.v4.view.ViewCompat$LollipopViewCompatImpl.setOnApplyWindowInsetsListener(ViewCompat.java:1619)
at android.support.v4.view.ViewCompat.setOnApplyWindowInsetsListener(ViewCompat.java:2924)
at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:425)
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:312)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:277)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.restroshop.restroowner.splash.SplashScreen.onCreate(SplashScreen.java:65)
at android.app.Activity.performCreate(Activity.java:6033)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)

в строке setContentView(R.layout.activity_splash_screen);

Мой фрагмент кода

public class SplashScreen extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash_screen); // this line giving error
    }

Я понятия не имею, что именно пошло не так при обновлении.


person Kuldeep Yadav    schedule 19.08.2016    source источник
comment
Убедитесь, что каждый com.android.support:xxx:... в вашем файле оценок имеет номер 24.2.0.   -  person ldemay    schedule 23.08.2016
comment
Спасибо @Idemay. Это сработало для меня.   -  person Kuldeep Yadav    schedule 23.08.2016
comment
Отлично, проверьте developer.android .com/topic/libraries/support-library/ библиотека v4 теперь разделена.   -  person ldemay    schedule 23.08.2016


Ответы (2)


Я обновил свою студию Android до версии 2.1.3. И теперь я получаю следующую ошибку

Я тоже мучаюсь с такой же проблемой. Но я решил следующим образом.

Причиной этого исключения является AppcompatActivity, полученная из библиотеки v7. поэтому мы должны предоставить правильную библиотеку на основе вашего градиента и SDK.

  1. следует также обновить библиотеки зависимостей.
  2. Щелкните правой кнопкой мыши проект в структуре проекта -> выберите «Открыть настройки модуля» и выберите вкладку «Зависимости» -> Модуль «Библиотека» -> затем введите библиотеку, которую вы хотите добавить в проект. Он показывает последние библиотеки на основе вашей обновленной версии Gradle, затем выбирает последнюю и удаляет существующую.

Например, в моем проекте "appcompat-v7" версия 23.4.0, затем я был изменен на 24.2.0.

person Kona Suresh    schedule 23.08.2016

У меня возникла эта ошибка из-за нескольких версий одной и той же библиотеки.

compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.jakewharton:butterknife:8.5.1'

Butterknife добавлял новую версию библиотеки appcombat. Я проверил это с помощью

./gradlew -q dependencies app:dependencies

Как работает gradle, он автоматически обновляет библиотеку до новой версии библиотеки, если она доступна. Поэтому я добавил следующий код

compile('com.jakewharton:butterknife:8.5.1') {
    exclude module: 'appcompat-v7'
    exclude group: 'com.android.support'
}

После этого он работал нормально.

person Harish Rana    schedule 09.05.2017
comment
Ты выкупил во мне кодера... последние два дня я боролся... и дело в том, что exclude module это спасло меня... так что спасибо тебе, бро... - person Ashwani; 03.07.2017
comment
Я могу понять. Я сам застрял на этой проблеме. Это очень расстраивает! - person Harish Rana; 04.07.2017