Ich habe ein Upgrade von Android targetSdk 22 bis 23 und ich bin immer ein NoSuchMethodError. Wie könnte ich dieses Problem beheben?
Hier ist meine config und meine Exception, ich bin mir nicht sicher, wie man dieses Problem beheben?
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)
InformationsquelleAutor der Frage Kamilski81 | 2015-09-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie ContextCompat.getColor()die Teil der Support V4-Bibliothek (so funktioniert es für alle bisherigen API).
Müssen Sie der Support V4-Bibliothek, indem Sie den folgenden, um die
dependencies
array innerhalb Ihrer app erstellen.gradle:Wenn Sie sich sorgen über das Aussehen, die Dokumentation gibt an, dass die Methode verwenden Sie das Kontext-Thema:
InformationsquelleAutor der Antwort Melvin
wenn Sie Ressource.getColor(int id) Methode in Ihrem fragment, dann ist es veraltet wie erwähnt, in Dokumentation
So Lösung ist entweder Ressource.getColor(int id, Ressource.Des Themas) wie schon erwähnt, in die Dokumentation...aber dann müssen Sie es mithilfe der if-Bedingung durch überprüfen der Android-Version oder
Sie können ContextCompat Klasse aus v4-Bibliothek wie erwähnt hier
InformationsquelleAutor der Antwort Shadow Droid