3

我更新了Android Studio到2.2,我的項目不會再生成。我活動的super.onCreate(savedInstanceState)給我一個錯誤:java.lang.NoSuchMethodError:沒有靜態方法getDrawable(Landroid/content/Context; I)Landroid/graphics/drawable/Drawable;

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) 

我做了一個完全新的活動,看它是否是我的代碼,是造成問題,但它並沒有幫助。這裏的活動:

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); 
    } 
} 

而且這裏是我的build.gradle(APP)

buildscript { 
    repositories { 
     maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
     classpath 'io.fabric.tools:gradle:1.+' 

    } 
} 
apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 

repositories { 
    maven { url 'https://maven.fabric.io/public' } 
} 

android { 
    compileSdkVersion 24 
    buildToolsVersion "23.0.3" 

     defaultConfig { 
      minSdkVersion 21 
      targetSdkVersion 24 
      ... 
     } 

    buildTypes { 

     debug { 
      ... 
      minifyEnabled false 
     } 

     release { 
      ... 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 

    compile project(':ViewLib') 
    compile files('libs/commons-io-2.5.jar') 
    compile project(':GridHeaders') 
    compile 'com.amazonaws:aws-android-sdk-s3:2.2.16' 
    compile 'com.google.code.gson:gson:2.6.2' 
    compile 'com.squareup.okhttp3:okhttp:3.2.0' 
    compile 'com.github.franmontiel:PersistentCookieJar:v0.9.3' 
    compile 'com.amazonaws:aws-android-sdk-mobileanalytics:2.2.9' 
    compile('com.facebook.fresco:fresco:0.11.0') { 
     exclude module: 'support-v4' 
    } 
    compile 'org.apache:pdfbox-android:1.8.9.0' 
    compile 'com.android.support:appcompat-v7:24.2.1' 
    compile 'com.android.support:design:24.2.1' 
} 

這個錯誤,我得到這個之前:java.lang.NoSuchMethodError: No static method setOnApplyWindowInsetsListener

而在這之前我有另一個類似的錯誤。兩者都通過更新我的支持庫來解決。現在我得到了最新的(24.2.1)版本的appcompatv7和設計庫,所以我不知道我能做些什麼。

回答

6

我能解決這個問題。在我的/ libs文件夾下,我有一個用gradle編譯的舊的android-support-v13.jar。我的應用程序嘗試使用此.jar的ContextCompat類,並且該類沒有靜態getDrawable(Context)方法。刪除這個.jar解決了我的問題。

+0

我有同樣的問題,但android-support-v13.jar文件沒有發現我的lib文件夾plz幫助... –

+0

我檢查'在android.support.v7.widget.AppCompatDrawableManager.getDrawable'文件它給C:\用戶\ ajagtap \應用程序數據\本地\ Android的\ SDK \演員\機器人\ m2repository \ COM \機器人\ SUPPORT \程序兼容性-V7 \ 25.3.0 \程序兼容性-v7-25.3.0-sources.jar!\機器人\ SUPPORT \ V7 \ widget \ AppCompatDrawableManager.java路徑 –

相關問題