当前位置:  开发笔记 > 编程语言 > 正文

当从接收者的意图中获得额外收益时,抛出NullPointerException。仅在华为设备上

如何解决《当从接收者的意图中获得额外收益时,抛出NullPointerException。仅在华为设备上》经验,为你挑选了0个好方法。

NullPointerException在我的应用程序中的bugtracker上发现了奇怪的东西。有趣的是,它仅在华为设备(Honor 7和P8 Lite)上发生。

因此,我运行了一些测试代码来检查这些设备是否确实存在问题。

这是我启动AlarmManager的代码:

final AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    final Intent intent = new Intent(this, TestReceiver.class);
    intent.putExtra(Constants.contant1, new User("John"));
    intent.setAction(Constants.action1);

    final PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 4882, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    alarmManager.cancel(pendingIntent);
    if (Build.VERSION.SDK_INT < 19) {
        alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), pendingIntent);
    } else {
        alarmManager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), pendingIntent);
    }
}

因此,我AlarmManager拨打了TestReceiver如下电话:

public class TestReceiver extends BroadcastReceiver {

private static final String TAG = TestReceiver.class.getName();

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Constants.action1)) {
            User text = intent.getParcelableExtra(Constants.contant1);
            Log.d(TAG, text.getName());
        }
    }
}

它所做的只是记录用户名。我们到了。在我的Huawei Honor 7上它崩溃了,NullPointerException但是在我的其他设备上它运行正常(在Nexus 5,三星Galaxy S3,HTC One,LG G2 Mini上进行了测试)。我和用户一起实现了Serializable和Parcelable。没帮助 但是当我添加String其他代码或其他代码时,代码将在华为上运行。

有人遇到与我现在面临的相同问题?

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有