2016-08-19 7 views
15

Я обновил мою студию Android до 2.1.3. А теперь я получаю следующее сообщение об ошибкеjava.lang.NoSuchMethodError: Нет статического метода setOnApplyWindowInsetsListener

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 
    } 

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

+1

Пожалуйста, проверьте, что каждый «com.android.support:xxx: ...» в вашем файле оценки 24.2.0 – ldemay

+0

Спасибо @Idemay. Это сработало для меня. –

+0

Удивительный, проверьте https://developer.android.com/topic/libraries/support-library/revisions.html#24-2-0-v4-refactor, теперь библиотека v4 разделена. – ldemay

ответ

23

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

Я также страдаю тем же вопросом. Но я был решен следующим образом.

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

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

Например, в моем проекте «appcompat-v7» версия 23.4.0, тогда меня заменили на 24.2.0.

15

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

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

Oilknife добавляет новую версию appcombat lib. Я проверил его с помощью

./gradlew -q dependencies app:dependencies 

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

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

Он работал отлично после этого.

+1

Вы купили мне кодер ... я боролся с последними двумя днями ... и это было «исключить модуль», это спасло меня ... так что большие пальцы до вас ... – Ashwani

+0

Я могу понять. Я застрял на этой проблеме. Это довольно неприятно! –

+0

Купите, почему возникла эта ошибка? – Dennis