gpt4 book ai didi

android - NotificationCompat.Builder 中的 NoClassDefFound

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:32 25 4
gpt4 key购买 nike

概念是在特定时间获得通知。显然,我做到了,直到我包含了对低于 HoneyComb 和高于它的版本的支持。

我已经设置了最小 SDK 版本 8 和目标 SDK 17。由于类编码要大得多,我只显示存在问题的核心区域:

int currentapiVersion = android.os.Build.VERSION.SDK_INT;
Notification notification;
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
new Intent(this, TaskDetails.class), 0);

if (currentapiVersion < android.os.Build.VERSION_CODES.HONEYCOMB) {

notification = new Notification(icon, text, time);
notification.setLatestEventInfo(this, title, text, contentIntent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
mNM.notify(NOTIFICATION, notification);
} else {
NotificationCompat.Builder builder = new NotificationCompat.Builder(
this);
notification = builder.setContentIntent(contentIntent)
.setSmallIcon(icon).setTicker(text).setWhen(time)
.setAutoCancel(true).setContentTitle(title)
.setContentText(text).build();

mNM.notify(NOTIFICATION, notification);
}

问题在于,

  • Notifications 类的一些方法和构造函数已被弃用。
  • 所以,除了这个,建议使用“developer.android.com”Notification.Builder.
  • 但是,Notification.Builder 类具有包含的方法在 API 级别 11 中(因此在 "Call requires API level 11 or more" 行中显示错误)。
  • 因此,它不允许我运行该项目。
  • 经过更多谷歌搜索后,我找到了使用类的解决方案NotificationCompat.Builder

最后,到了没有发现错误的阶段,我在我的 Sony Xperia Tipo Dual ST21i2 上运行我的项目...

悲剧结局:我得到如下错误日志:

06-01 06:34:14.199: E/AndroidRuntime(4178): FATAL EXCEPTION: main
06-01 06:34:14.199: E/AndroidRuntime(4178): java.lang.NoClassDefFoundError: android.support.v4.app.NotificationCompat$Builder
06-01 06:34:14.199: E/AndroidRuntime(4178): at com.todotaskmanager.service.NotifyService.showNotification(NotifyService.java:99)
06-01 06:34:14.199: E/AndroidRuntime(4178): at com.todotaskmanager.service.NotifyService.onStartCommand(NotifyService.java:68)
06-01 06:34:14.199: E/AndroidRuntime(4178): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2359)
06-01 06:34:14.199: E/AndroidRuntime(4178): at android.app.ActivityThread.access$1900(ActivityThread.java:123)
06-01 06:34:14.199: E/AndroidRuntime(4178): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
06-01 06:34:14.199: E/AndroidRuntime(4178): at android.os.Handler.dispatchMessage(Handler.java:99)
06-01 06:34:14.199: E/AndroidRuntime(4178): at android.os.Looper.loop(Looper.java:137)
06-01 06:34:14.199: E/AndroidRuntime(4178): at android.app.ActivityThread.main(ActivityThread.java:4424)
06-01 06:34:14.199: E/AndroidRuntime(4178): at java.lang.reflect.Method.invokeNative(Native Method)
06-01 06:34:14.199: E/AndroidRuntime(4178): at java.lang.reflect.Method.invoke(Method.java:511)
06-01 06:34:14.199: E/AndroidRuntime(4178): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
06-01 06:34:14.199: E/AndroidRuntime(4178): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
06-01 06:34:14.199: E/AndroidRuntime(4178): at dalvik.system.NativeStart.main(Native Method)

最佳答案

好的...我解决了我的问题。

右键单击您的项目转到属性 -> Java 构建路径。选择订单导出选项卡。确保选择了 Android 私有(private)库。如果您引用了库项目。对图书馆项目也做同样的事情。清理和构建。

同时转到 android sdk 管理器并检查您是否安装了 android sdk 构建工具。这可能不是必需的,但请确保您安装了 Android 构建工具。

关于android - NotificationCompat.Builder 中的 NoClassDefFound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com