API 19上的NullPointerException而不是API 23

时间:2016-08-17 11:23:14

标签: android nullpointerexception

我在带有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;
        }
    }

1 个答案:

答案 0 :(得分:1)

您可以检查arraylist何时为空或未设置适配器。

if(!list.isEmpty())
{
 CustomAdapter adapter=new CustomAdapter();
}

或者

@Override
 public int getItemCount() {
     return (list == null) ? 0 : list.size();
 }

希望这会对你有所帮助。