2016-07-23 27 views
10

Ich mache eine einfache Alarm-App. Wo auch immer ich Calendar Klasse verwende, zeigt es einen Fehler wie Titel.Aufruf erfordert API-Ebene 24 (derzeit mindestens 12): android.icu.util.calendar

Immer wenn ich mein Projekt erstelle, baut es gut, aber app stürzt ab, wenn es auf Telefon gestartet wird. Unten ist die Logcat:

07-22 18:24:15.607 18047-18047/com.example.panwa.afinal D/AndroidRuntime: Shutting down VM 
07-22 18:24:15.607 18047-18047/com.example.panwa.afinal W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x40d952d0) 
07-22 18:24:15.627 18047-18047/com.example.panwa.afinal E/AndroidRuntime: ***FATAL EXCEPTION: main 
    java.lang.NoClassDefFoundError: android.icu.util.Calendar*** 
     at com.example.panwa.afinal.MainActivity.startAt10(MainActivity.java:70) 
     at com.example.panwa.afinal.MainActivity$3.onClick(MainActivity.java:46) 
     at android.view.View.performClick(View.java:4275) 
     at android.view.View$PerformClick.run(View.java:17434) 
     at android.os.Handler.handleCallback(Handler.java:615) 
     at android.os.Handler.dispatchMessage(Handler.java:92) 
     at android.os.Looper.loop(Looper.java:177) 
     at android.app.ActivityThread.main(ActivityThread.java:4947) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
     at dalvik.system.NativeStart.main(Native Method) 
07-22 18:25:33.824 18047-18047/com.example.panwa.afinal I/Process: Sending signal. PID: 18047 SIG: 9 

Ich habe eine Reihe meiner min SDK 11 zu sein, aber noch funktioniert es nicht.

+0

Die andere Lösung können Sie prüfen, ob Ihre App Daten und Zeiten verwendet, wird immer [ThreeTenABP] (https://github.com/ JakeWharton/ThreeTenABP). Seine Datums- und Zeitklassen sind im Allgemeinen viel programmiererfreundlicher als die jetzt sehr alte "Kalender" -Klasse - egal, ob wir "android.icu.util.Calendar" oder "java.util.Calendar" sprechen. –

Antwort

46

Importieren Sie statt android.icu.util.calendarjava.util.Calendar.

Die android.icu.util.calendar ist der ICU-Ersatz für java.util.Calendar, aber es ist nur ab API 24 verfügbar. Es wird also nur auf den Geräten funktionieren, die API 24 und höher ist.

Ref: