我在带有API19的S4 mini上使用我的APP时出现NullPointerException错误。在带有API 23的S7上,一切正常。为什么我在较旧的API上出现此错误?
这是错误:
致命的例外:主要 过程:com.example.entwicklung1.designtestapp,PID:32571 显示java.lang.NullPointerException 在 com.example.entwicklung1.designtestapp.NewsAdapter.getItemCount(NewsAdapter.java:64) 在 android.support.v7.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:3170) 在 android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2782) 在android.view.View.measure(View.java:17331) 在android.widget.RelativeLayout.measureChild(RelativeLayout.java:689) 在android.widget.RelativeLayout.onMeasure(RelativeLayout.java:473) 在android.view.View.measure(View.java:17331) 在 android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1079) 在android.view.View.measure(View.java:17331) 在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5376) 在android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 在 android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) 在android.view.View.measure(View.java:17331) 在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5376) 在 android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410) 在android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 在android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 在android.view.View.measure(View.java:17331) 在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5376) 在android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 在android.view.View.measure(View.java:17331) 在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5376) 在 android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410) 在android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 在android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 在android.view.View.measure(View.java:17331) 在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5376) 在android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 在 com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2548) 在android.view.View.measure(View.java:17331) 在android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2279) 在android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1393) 在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1592) 在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1251) 在 android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6540) 在 android.view.Choreographer $ CallbackRecord.run(Choreographer.java:813) 在android.view.Choreographer.doCallbacks(Choreographer.java:613) 在android.view.Choreographer.doFrame(Choreographer.java:583) 在 android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:799) 在android.os.Handler.handleCallback(Handler.java:733) 在android.os.Handler.dispatchMessage(Handler.java:95) 在android.os.Looper.loop(Looper.java:146) 在android.app.ActivityThread.main(ActivityThread.java:5593) at java.lang.reflect.Method.invokeNative(Native Method) 在java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1283) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 在dalvik.system.NativeStart.main(本地方法)
我知道有很多关于NullPointerException的问题,但还没有解决我的问题。
以下是第一行显示的代码:
@Override
public int getItemCount() { return feedItems.size(); }
And the FeedItem.class:
public class FeedItem {
String titel;
String link;
String description;
String pubDate;
String imgsrc;
String category;
String summary;
public String getSummary() { return summary; }
public void setSummary(String summary) {
this.summary = summary;
}
public String getCategory() { return category; }
public void setCategory(String category) { this.category = category; }
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getImgsrc() {
return imgsrc;
}
public void setImgsrc(String imgsrc) {
this.imgsrc = imgsrc;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getPubDate() {
return pubDate;
}
public void setPubDate(String pubDate) {
this.pubDate = pubDate;
}
public String getTitel() {
return titel;
}
public void setTitel(String titel) {
this.titel = titel;
}
}
答案 0 :(得分:1)
您可以检查arraylist何时为空或未设置适配器。
if(!list.isEmpty())
{
CustomAdapter adapter=new CustomAdapter();
}
或者
@Override
public int getItemCount() {
return (list == null) ? 0 : list.size();
}
希望这会对你有所帮助。