2016-08-19 8 views
15

私はアンドロイドスタジオを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) 

を取得しています​​

私のコードスニペットは、私がアップグレード中に、正確に何が悪かったのか見当がつかない

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

私はアンドロイドスタジオを2.1.3にアップグレードしました。そして、私は次のエラーが発生しています

私は同じ問題を抱えています。しかし、私は次のように解決されました。

この例外の理由は、v7ライブラリから派生したAppcompatActivityです。あなたのgradleとSDKに基づいて適切なライブラリを提供する必要があります。

  1. は、依存関係ライブラリも更新する必要があります。
  2. プロジェクト構造内のプロジェクトを右クリックし、[モジュールの設定を開く]を選択し、[依存関係]タブを選択します。[ライブラリモジュール]を選択し、プロジェクトに追加するライブラリを入力します。それはあなたのgradle更新版に基づいて最新のライブラリを表示し、最新のものを選択して既存のライブラリを削除します。

たとえば、私のプロジェクト「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' 

バターナイフは、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

あなたは私の中でコーダーを買いました...私は最後の2日間から苦労していました。そして、事は 'モジュールを除外しました。これは私を救ってくれました...だからあなたの仲間まで... – Ashwani

+0

私は理解できます。私はこの問題に悩まされました。それはかなりイライラしています! –

+0

なぜそのエラーが発生したのですか? – Dennis

関連する問題