rwo*_*cik 5 java android nullpointerexception
我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);
}
}
Run Code Online (Sandbox Code Playgroud)
因此,我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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
它所做的只是记录用户名。我们到了。在我的Huawei Honor 7上它崩溃了,NullPointerException
但是在我的其他设备上它运行正常(在Nexus 5,三星Galaxy S3,HTC One,LG G2 Mini上进行了测试)。我和用户一起实现了Serializable和Parcelable。没帮助 但是当我添加String
其他代码或其他代码时,代码将在华为上运行。
有人遇到与我现在面临的相同问题?
小智 0
您可以使用
if(intent.hasExtra(Constants.contant1)){
User text = intent.getParcelableExtra(Constants.contant1);
Log.d(TAG, text.getName());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
353 次 |
最近记录: |