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

21

我正在制作一个简单的闹钟应用程序。每当我使用Calendar类时,它会显示与标题相同的错误。

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, 30);

每当我构建项目时,它都能成功构建,但是在手机上启动应用程序时会崩溃。 以下是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

我已经将我的最低SDK版本设置为11,但仍然无法正常工作。


另一种解决方案是考虑使用ThreeTenABP 如果您的应用程序使用日期和时间。它的日期和时间类通常比现在非常古老的 Calendar 类更适合程序员使用,无论我们是谈论 android.icu.util.Calendar 还是 java.util.Calendar - Ole V.V.
1个回答

62

建议使用java.util.Calendar而不是导入android.icu.util.calendar

android.icu.util.calendar是ICU替代java.util.Calendar的类,但它只能在API 24及以上版本的设备上使用。

参考:


为什么Android要创建一个几乎执行相同功能的单独包,并且使其无法在API 24以下工作?使用android.icu.util而不是java.util有什么优势吗? - kks21199
@kks21199,你的担忧非常合理。这些家伙试图让开发者的生活变得非常困难。 - Makari Kevin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接