java.lang.NoSuchFieldError android/support/v7/AppCompat/

java.lang.NoSuchFieldError android/support/v7/AppCompat/

今天开始我的eclipse后,我运行returns任何项目都出现以下错误:

08-06 08:01:23.770: E/AndroidRuntime(5406): FATAL EXCEPTION: main
08-06 08:01:23.770: E/AndroidRuntime(5406): Process: be.thomasmore.powerfactory, PID: 5406
08-06 08:01:23.770: E/AndroidRuntime(5406): java.lang.NoSuchFieldError: No static field abc_screen_toolbar of type I in class Landroid/support/v7/appcompat/R$layout; or its superclasses (declaration of 'android.support.v7.appcompat.R$layout' appears in /data/app/be.thomasmore.powerfactory-2/base.apk)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:299)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at be.thomasmore.powerfactory.MainActivity.onCreate(MainActivity.java:44)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.app.Activity.performCreate(Activity.java:5990)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.app.ActivityThread.access0(ActivityThread.java:151)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.os.Handler.dispatchMessage(Handler.java:102)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.os.Looper.loop(Looper.java:135)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at android.app.ActivityThread.main(ActivityThread.java:5254)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at java.lang.reflect.Method.invoke(Native Method)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at java.lang.reflect.Method.invoke(Method.java:372)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
08-06 08:01:23.770: E/AndroidRuntime(5406):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

昨晚一切正常..

有什么想法吗?

显然我需要更新我的 SDK 工具和 SDK 平台工具,之后我能够 select 5.1.1 作为我的 appcompat v7 库项目的构建目标。

升级到 Android Studio 2.0 和 Android Support Library 23.3.0 后,我遇到了类似的问题。错误是

java.lang.NoSuchFieldError: No static field AppCompatTheme of type

我通过 Android SDK 管理器解决了这个问题。 以下更新可用:

  • Android SDK 构建工具
  • Android SDK 工具
  • Android 支持库
  • Google 存储库

更新并再次 运行 应用程序,解决了问题。

编辑:

如果您已经更新了上述内容但仍然有问题, 正如@mparkes 在评论中指出的那样,检查您是否已更新 build.gradle(app) 文件以使用最新的库,如下所示:

dependencies {
    compile 'com.android.support:appcompat-v7:23.3.0'
}

然后重建项目:Build Menu > Rebuild Project

升级到 Android Studio 2.0 后我也遇到了这个问题。就我而言,这是 Instant 运行 问题。有一个bug in AOSP Issue Tracker.

所以禁用 Instant 运行 帮助了我。

  • 打开“设置”或“首选项”对话框。
  • 导航到“构建、执行、部署”>“即时”运行。

就我而言,我在我的图书馆项目中使用了 v7:23.3.0,但在实际应用中使用了 v7:23.0.0。这意味着,该库是针对比它在应用程序中获得的版本更高的版本编译的。