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

时间:2015-08-06 12:11:05

标签: android android-appcompat

今天开始我的日食后,我运行的任何项目都会返回以下错误:

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)

昨晚一切都还不错..

有什么想法吗?

4 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:9)

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

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

我通过访问Android SDK Manager解决了这个问题。 更新可用于以下内容:

  • Android SDK构建工具
  • Android SDK工具
  • Android支持库
  • Google Repository

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

修改

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

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

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

答案 2 :(得分:5)

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

因此禁用Instant Run帮助了我。

  • 打开“设置”或“偏好设置”对话框。
  • 导航至构建,执行,部署>即时跑步。

答案 3 :(得分:0)

在我的情况下,我在我的图书馆计划中使用了v7:23.3.0,但在实际应用中使用了v7:23.0.0。这意味着,库的编译版本高于应用程序中的版本。