java.lang.NoSuchMethodError: No static method setOnApplyWindowInsetsListener
java.lang.NoSuchMethodError: No static method 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.access0(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
}
我不知道升级时到底出了什么问题。
我将 android 工作室升级到了 2.1.3。现在我收到以下错误
我也遇到了同样的问题。但是我是通过以下方式解决的。
出现此异常的原因是从 v7 库派生的 AppcompatActivity。所以我们应该根据您的 gradle 和 SDK 提供适当的库。
- 还应该更新依赖库。
- 右键单击项目结构中的项目 -> select 打开模块设置和 select 依赖项选项卡 -> 库模块 -> 然后键入要添加到项目的库。它根据您的 gradle 更新版本显示最新的库,然后显示 select 最新的并删除现有的。
比如我的项目"appcompat-v7"版本是23.4.0然后我改成24.2.0.
由于同一库的多个版本,我遇到了这个错误。
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'
}
之后一切正常
我将 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.access0(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
}
我不知道升级时到底出了什么问题。
我将 android 工作室升级到了 2.1.3。现在我收到以下错误
我也遇到了同样的问题。但是我是通过以下方式解决的。
出现此异常的原因是从 v7 库派生的 AppcompatActivity。所以我们应该根据您的 gradle 和 SDK 提供适当的库。
- 还应该更新依赖库。
- 右键单击项目结构中的项目 -> select 打开模块设置和 select 依赖项选项卡 -> 库模块 -> 然后键入要添加到项目的库。它根据您的 gradle 更新版本显示最新的库,然后显示 select 最新的并删除现有的。
比如我的项目"appcompat-v7"版本是23.4.0然后我改成24.2.0.
由于同一库的多个版本,我遇到了这个错误。
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'
}
之后一切正常