错误:java.lang.NoSuchFieldError android/support/v7/AppCompat/

13

今天我启动Eclipse后,运行任何项目都会返回以下错误:

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.access$800(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)
昨晚一切都还正常运作了... 有什么想法吗?

您没有正确设置(appcompat)库,您是不是只添加了一个jar文件?类似的问题已经被问了很多次,您是否遵循过其中任何一个? - Selvin
迁移到Android Studio,并从Gradle导入AppCompat。 - IntelliJ Amiya
请阅读 http://wptrafficanalyzer.in/blog/android-setting-up-actionbarcompat-support-library-in-eclipse/。 - IntelliJ Amiya
http://blog.axxg.de/android-support-library-v7-appcompat-eclipse-einbinden/ - IntelliJ Amiya
1
我已经查看了其他解决方案,唯一我尚未尝试的是将支持库回滚到v20。@IntelliJAmiya 我已经阅读了两篇文章,并按照第一篇文章中所示导入了appcompat v7,但我无法像第二篇文章中描述的那样更改我的appcompat项目构建目标。我只能选择Android 4.4W。 - Glenn
4个回答

11

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


9
升级到Android Studio 2.0和Android Support Library 23.3.0后,我遇到了类似的问题。错误信息如下:
java.lang.NoSuchFieldError: No static field AppCompatTheme of type

我通过进入Android SDK Manager解决了这个问题。 以下内容有更新可用:
- Android SDK构建工具 - Android SDK工具 - Android支持库 - Google存储库
更新后再次运行应用程序,问题得到解决。
编辑: 如果您已经更新了上述内容但仍然遇到问题, 如@mparkes在评论中指出的那样,请检查是否已更新build.gradle(app)文件以使用最新的库,如下所示:
dependencies {
    compile 'com.android.support:appcompat-v7:23.3.0'
}

然后重新构建项目:构建菜单 > 重新构建项目

我之前也遇到了同样的问题,所有东西都已经更新了。我只是把我的gradle文件更改为'com.android.support:appcompat-v7:23.3.0',并通过build -> rebuild来解决它。 - mparkes

5

升级到Android Studio 2.0后,我也遇到了这个问题。在我的情况下,这是Instant Run的问题。在AOSP问题跟踪器中存在一个错误

所以禁用Instant Run对我有帮助。

  • 打开设置或首选项对话框。
  • 导航到构建、执行、部署 > Instant Run。

如果您清理并重新构建项目,它也可以工作。同样,这也会在最近的AS构建中发生(例如2.1.2)。 - andreimarinescu

0
在我的情况下,我在我的库项目中使用了v7:23.3.0版本,但在实际应用程序中使用了v7:23.0.0版本。这意味着该库是针对比应用程序中使用的更高版本进行编译的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接