web-dev-qa-db-ja.com

java.lang.NoSuchMethodError:静的メソッドなしsetOnApplyWindowInsetsListener

Android studioを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
    }
_

アップグレード中に何がうまくいかなかったのかわかりません。

16
Kuldeep Yadav

Android studioを2.1.3にアップグレードしました。現在、次のエラーが発生しています

私も同じ問題に苦しんでいます。しかし、私は次のように解決されました。

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

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

たとえば、私のプロジェクトでは、「appcompat-v7」のバージョンは23.4.0で、その後24.2.0に変更されました。

24
Kona Suresh

同じライブラリの複数のバージョンが原因でこのエラーが発生しました。

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'
}

その後はうまくいきました。

17
Harish Rana