2015-09-18 26 views
16

Yapılandırmam ve boşanma durumum, bunu nasıl düzeltebileceğimi bilmiyorum?Android'i targetSdk 22'den 23'e yükselttim ve bir NoSuchMethodError alıyorum. Bunu nasıl düzeltebilirim?

compileSdkVersion 23 
buildToolsVersion "23.0.1" 

defaultConfig { 
    applicationId "com.rithmio.coach" 
    minSdkVersion 19 
    targetSdkVersion 23 
} 

09-17 22:52:15.645 15249-15249/com.rithmio.coach E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: com.rithmio.coach, PID: 15249 
    java.lang.NoSuchMethodError: No virtual method getColor(ILandroid/content/res/Resources$Theme;)I in class Landroid/content/res/Resources; or its super classes (declaration of 'android.content.res.Resources' appears in /system/framework/framework.jar) 
      at com.rithmio.coach.mobile.fragment.WorkoutsListFragment.onCreateView(WorkoutsListFragment.java:55) 
      at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) 
      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1016) 
      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1197) 
      at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) 
      at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1562) 
      at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330) 
      at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:511) 
      at com.rithmio.coach.mobile.MobileMainActivity.onStart(MobileMainActivity.java:269) 
      at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236) 
      at android.app.Activity.performStart(Activity.java:6006) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
      at android.app.ActivityThread.access$800(ActivityThread.java:151) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:135) 
      at android.app.ActivityThread.main(ActivityThread.java:5254) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:372) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
+0

destek v4 kitaplığının doğru sürümünü kullanmayı deneyin — derleyin 'com.android.support:support-v4:23.0.0' –

cevap

68

olarak v4 kütüphanesinden den ContextCompat sınıfını kullanabilirsiniz.

compile 'com.android.support:support-v4:23.0.1' 

Eğer tema önem veriyorsan dokümantasyon yöntemine belirtir:

ContextCompat.getColor(context, R.color.my_color) 

için bunları uygulama build.gradle içine dependencies diziye aşağıdaki ekleyerek Destek V4 kütüphanesini eklemeniz gerekecektir bağlam temasını kullanacağız: M ayından itibaren

, döndürülen renk belirtilen bağlam teması için tarz olacaktır

+0

Bu doğru yoldur ve tüm Yapı Araçları ve Android sürümleriyle çalışır. –

3

Eğer Resource.getColor (int id) documentation
Yani çözeltide bahsedildiği gibi kullanımdan kaldırıldı ardından fragmanında yöntemi kullanıyorsanız gitmek ya olduğu Resource.getColor (int id, Resource.Theme teması)
dokümantasyonda belirtildiği gibi ... ama daha sonra Android Sürüm o kontrol ederek koşulu kullanarak koymak gerekir r
Sen Destek V4 Library (bu nedenle tüm önceki API için çalışacak) bir parçasıdır söz here Sen ContextCompat.getColor() kullanmak gerekir