.getImage() 上的空对象引用 android [重复]
Posted
技术标签:
【中文标题】.getImage() 上的空对象引用 android [重复]【英文标题】:.getImage() on a null object reference android [duplicate] 【发布时间】:2018-12-31 14:15:59 【问题描述】:我有一个片段。单击图像后,我开始活动。但我不断收到此错误
Unable to start activity ComponentInfocom.flag.app/com.flag.app.app.activity.MarkerDetailsActivity:
java.lang.NullPointerException: Attempt to invoke virtual method 'com.flag.app.app.model.Image com.flag.app.app.model.Marker.getImage()'
on a null object reference
所以,这是我的活动
public class MarkerDetailsActivity extends AppCompatActivity
public static Intent getStartIntent(Context context, Marker marker)
Intent startIntent = new Intent(context, MarkerDetailsActivity.class);
startIntent.putExtra(EXTRA_MARKER, marker);
return startIntent;
ImageView mImageView;
TextView mNameTextView;
Marker mMarker;
MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details_marker);
mMarker = getIntent().getParcelableExtra(EXTRA_MARKER);
mImageView = findViewById(R.id.image_view);
mMapView = findViewById(R.id.map_view);
mMapView.onCreate(savedInstanceState);
bindMarker(mMarker);
private void bindMarker(Marker marker)
Picasso.with(mImageView.getContext())
.load(marker.getImage().getUrl())
.into(mImageView);
mAuthorTextView.setText(marker.getAuthor());
mDescriptionTextView.setText(marker.getDescription());
mDateTextView.setText(marker.getDate());
如何解决?
【问题讨论】:
你怎么知道getParcelableExtra
实际上返回了一个值?
getParcelableExtra 实际上没有返回值?如何解决?
这是一个问题还是一个验证?你需要展示你是如何使用 getStartIntent 方法的
【参考方案1】:
检查空值。
private void bindMarker(Marker marker)
if(marker != null)
Picasso.with(mImageView.getContext())
.load(marker.getImage().getUrl())
.into(mImageView);
mAuthorTextView.setText(marker.getAuthor());
mDescriptionTextView.setText(marker.getDescription());
mDateTextView.setText(marker.getDate());
【讨论】:
标记的图像仍可能为空【参考方案2】:private void bindMarker(Marker marker)
if(marker!=null)
if(marker.getImage()!=null)
Picasso.with(mImageView.getContext())
.load(marker.getImage().getUrl())
.into(mImageView);
mAuthorTextView.setText(marker.getAuthor());
mDescriptionTextView.setText(marker.getDescription());
mDateTextView.setText(marker.getDate());
在使用Marker
之前必须检查对象是否为空
【讨论】:
以上是关于.getImage() 上的空对象引用 android [重复]的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.NullPointerException:尝试在 OnPostExecute() 上的空对象引用错误上调用接口方法 - AsyncTask
尝试在 recyclerview kotlin 上的空对象引用上调用虚拟方法 'void android.widget.TextView.setText(java.lang.CharSequence)