附加缺少的源android

Posted

技术标签:

【中文标题】附加缺少的源android【英文标题】:attach missing source android 【发布时间】:2012-12-16 18:25:24 【问题描述】:

我正在关注this guide,但我已经对其进行了一些改造; 删除了包含所有电子邮件和名称内容的第一个活动。基本上,我所做的是: 一个带有按钮和文本视图的应用程序,当您按下按钮时,regId 会弹出。到目前为止一切都很好,但是当谈到接收推送本身时,没有弹出窗口,没有唤醒锁或任何东西,只是“通知中心”中的一个简单行(真的不知道它在 android 上叫什么)。代码如下:

private static void generateNotification(Context context, String message) 
    
        int icon = R.drawable.ic_launcher;
        long when = System.currentTimeMillis();
        NotificationManager notificationManager = (NotificationManager)
                context.getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notification = new Notification(icon, message, when);

        String title = context.getString(R.string.app_name);

        Intent notificationIntent = new Intent(context, MainActivity.class);
        // set intent so it does not start a new activity
        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
                Intent.FLAG_ACTIVITY_SINGLE_TOP);
        PendingIntent intent =
                PendingIntent.getActivity(context, 0, notificationIntent, 0);
        notification.setLatestEventInfo(context, title, message, intent);
        notification.flags |= Notification.FLAG_AUTO_CANCEL;

错误: 通知通知 = new Notification(icon, message, when);

构造函数 Notification(int, charSequence, long) 已弃用

notification.setLatestEventInfo(context, title, message, intent);
The method setLatestEventInfo(Context, CharSequence, CharSequence, PendingIntent) from the type Notification is deprecated

(logCat 从错误中清除)

当我打开声明时,它显示“JAR 文件没有源附件”。 我试图添加来源和谷歌搜索。但无论我做什么都说

the source attachment does not contain the source for the file Notification.class

我相信我在推送中获取消息的问题是因为这个。关于如何解决它的任何想法?

PS。我是这一切的新手,如果您需要更多代码,请告诉我,如果我在这里走错了路,请告诉我!:)

【问题讨论】:

【参考方案1】:

这与您的警告无关。警告只是说,您使用的方法自 API 级别 11 起已弃用。对于较新的 API,您可以(但您不必这样做,只是建议)使用 Notification.Builder:

Notification noti = new Notification.Builder(mContext)
     .setContentTitle("New mail from " + sender.toString())
     .setContentText(subject)
     .setSmallIcon(R.drawable.new_mail)
     .setLargeIcon(aBitmap)
     .build();

编辑: 检查当前 API:

int currentVersion = android.os.Build.VERSION.SDK_INT;
int honeycombVersion = android.os.Build.VERSION_CODES.HONEYCOMB;

if (currentVersion >= honeycombVersion )
    // Use Notification.Builder
 else
    // Use Notification(int, charSequence, long)

编辑2: 如果您使用支持库,则可以在较低的 API 上使用 Notification.Builder。

【讨论】:

首先;谢谢你!第二;说我想使用它,我该怎么做,除了 >Notification notification = new Notification(icon, message, when); 之外我还需要重写什么吗?如果这是一个迟钝的问题,真的很抱歉,但正如我所说,我对这些东西很陌生。我只想接收带有弹出窗口的推送,显示我从服务器发送的消息(可能还有图标) 您可以检查您的应用程序正在运行的 API,并取决于您可以使用 Notification.Builder 或 Notification(int, charSequence, long) 方法。 我正在使用 min API 8,看来我需要 min 11 才能做到这一点。 如果您使用兼容性通知生成器,您不必担心 API 级别 @A--C 哦,不知道在support lib里面。

以上是关于附加缺少的源android的主要内容,如果未能解决你的问题,请参考以下文章

获取附加到 Eclipse 的源 jar 文件以获取 Maven 管理的依赖项

尝试将 MediaSource 对象附加为 HTML5 视频标签的源时出现“不允许加载本地资源”错误

缺少文件附加错误颤动firebase

如何将 onchange 事件附加到 CheckBoxList?缺少输入属性?

活动包缺少附加功能,即使它们应始终添加到 newIntance 方法中

Androidandroid常用工具类。