调用需要API级别24(当前最低为12):android.icu.util.calendar

调用需要API级别24(当前最低为12):android.icu.util.calendar,android,android-calendar,Android,Android Calendar,我正在制作一个简单的闹钟应用程序。无论我在哪里使用日历类,它都会显示一个与标题相同的错误 Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY, 10); calendar.set(Calendar.MINUTE, 30); 每当我建立我的项目,它建立良好,但应用程序崩溃时,它在手机上启

我正在制作一个简单的闹钟应用程序。无论我在哪里使用
日历
类,它都会显示一个与标题相同的错误

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, 30);
每当我建立我的项目,它建立良好,但应用程序崩溃时,它在手机上启动。 以下是日志:

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

我已将min SDK设置为11,但它仍然不工作。

请尝试导入
java.util.calendar
,而不是导入
android.icu.util.calendar

android.icu.util.calendar
java.util.calendar
的icu替代品,但它仅从API 24开始提供。因此,它只能在API 24及以上的设备上工作

参考:


  • 如果你的应用程序使用日期和时间,你可以考虑另一个解决方案。它的日期和时间类通常比现在非常古老的
    Calendar
    类对程序员更友好——不管我们谈论的是
    android.icu.util.Calendar
    还是
    java.util.Calendar
    。为什么android会制作一个单独的包,它可以完成几乎相同的功能集,而且也不可能工作低于API 24?与java.util相比,使用android.icu.util有什么优势吗?@kks21199您的担心是正确的。这些家伙试图使开发人员的生活变得非常困难。