java.lang.NoSuchMethodError:没有静态方法getDrawable(Landroid / content / Context; I)Landroid / graphics / drawable / Drawable;

时间:2016-09-21 13:20:15

标签: android android-studio android-activity android-support-library

我将Android Studio更新为2.2,我的项目不再构建。我的Activity的super.onCreate(savedInstanceState)给了我一个错误:

In [187]:
mydf.groupby('indicatorKPI')['value'].mean()

Out[187]:

indicatorKPI
NY.GDP.MKTP.CD    0.633333
SP.DYN.LE00.IN    0.400000
Name: value, dtype: float64

In [188]:
mydf['indicatorKPI'].map(mydf.groupby('indicatorKPI')['value'].mean())

Out[188]:
0     0.400000
1     0.633333
2     0.400000
3     0.400000
4     0.633333
5     0.400000
6     0.633333
7     0.633333
8     0.400000
9     0.633333
10    0.400000
Name: indicatorKPI, dtype: float64

我创建了一个全新的Activity,看看是不是我的代码导致了问题,但它没有帮助。这是活动:

java.lang.NoSuchMethodError: No static method getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; in class Landroid/support/v4/content/ContextCompat; or its super classes (declaration of 'android.support.v4.content.ContextCompat' appears in /data/app/x.y.z-1/base.apk:classes32.dex)
                                                                     at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197)
                                                                     at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:185)
                                                                     at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:720)
                                                                     at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190)
                                                                     at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:77)
                                                                     at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:127)
                                                                     at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:147)
                                                                     at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:27)
                                                                     at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:50)
                                                                     at android.support.v7.app.AppCompatDelegateImplV23.<init>(AppCompatDelegateImplV23.java:29)
                                                                     at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:199)
                                                                     at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181)
                                                                     at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)
                                                                     at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
                                                                     at zz.yyy.xxx.activities.AsdActivity.onCreate(AsdActivity.java:12)
                                                                     at android.app.Activity.performCreate(Activity.java:6904)
                                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
                                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
                                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
                                                                     at android.app.ActivityThread.access$1100(ActivityThread.java:229)
                                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
                                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                     at android.os.Looper.loop(Looper.java:148)
                                                                     at android.app.ActivityThread.main(ActivityThread.java:7325)
                                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

这是我的build.gradle(app)

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class AsdActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_asd);
    }
}

在此错误出现之前,我得到了这个:java.lang.NoSuchMethodError: No static method setOnApplyWindowInsetsListener

在此之前我还有另一个类似的错误。两者都是通过更新我的支持库来修复的。现在我得到了appcompatv7和设计库的最新版本(24.2.1),所以我不知道我能做什么了。

1 个答案:

答案 0 :(得分:6)

我能够解决这个问题。在我的/ libs文件夹下,我有一个旧的android-support-v13.jar,它是用gradle编译的。我的应用程序尝试使用此.jar的ContextCompat类,并且该类没有静态getDrawable(Context)方法。删除这个.jar解决了我的问题。